Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: memcache-ssl-0…
Commits on Jul 22, 2011
  1. @tmm1
  2. @tmm1

    Swap out libmemcache for libmemcached

    tmm1 authored committed
  3. @tmm1

    Require libmemcached instead of libmemcache

    tmm1 authored committed
  4. @tmm1

    mc_set() expects expiration as epoch time

    tmm1 authored committed
  5. @tmm1

    Fix hostname parsing when no port is provided

    tmm1 authored committed
  6. @tmm1
  7. Check return value of mc_new

Commits on Mar 24, 2011
  1. Remove keys from memcache if requested, and cleanup error handling

    Removing keys is easy -- a quick mc_delete and we're done.  The error
    handling was basically just moving the big blob of end-times cleanup at the
    end of each function into per-store-type blobs.  This means that errors in
    (say) the SHM store won't prevent a memcache store request from succeeding
    (in the very unlikely event that both are running).
  2. Refactor the memcache setup code out into it's own function

    Common code goes in common locations.
Commits on Mar 23, 2011
  1. Retrieve SSL sessions from memcache

    Quite straightforward.
  2. Store SSL sessions in memcache

    We're only storing the sessions so far, not retrieving them, but it's a good
    proof-of-concept that all of the plumbing is in place to support all
    operations.  You can verify that sessions are, indeed, getting stored, by
    watching what memcache does.
  3. Actually enable memcache session storage

    One little 'if' statement I missed, and the whole shebang gets disabled.
    How disappointing.
  4. Conditionalise compilation of memcache-specific bits in http_ssl_module

    There's nothing in here that actually links against or otherwise uses
    libmemcache, but by conditionalising this code we can ensure that attempts
    to configure memcache: session storage support when it's not built-in will
    cause a startup failure, rather than inexplicable lack of session storage.
    Much safer.
  5. Modify build system to handle --with-memcache-ssl-session-store option

    Involved adding USE_LIBMEMCACHE support, a new configure option or two, and
    some dickering around with the README.  Double bonus: we've now got a
    compile-time define (MEMCACHE_SSL_SESSION_STORE) so we can avoid cluttering
    up the code of anyone who doesn't want us.
  6. Parse "ssl_session_cache memcached:..." config

    Added appropriate fields to the ngx_ssl_session_cache_cfg_t struct, and
    modified the config parser for the ssl_http module to fill them
Commits on Mar 22, 2011
  1. Abstract out the external session cache

    The nginx codebase currently assumes that you've either got an
    OpenSSL-builtin session cache, or a SHM-based shared session cache (which it
    calls the "external session cache").  Since we're trying to add a second
    form of "external session cache" (memcached), we need to start by avoiding
    referring directly to the SHM cache as our external session cache, and put
    in an abstract middleman that will allow us to refer to "the external
    session cache" in general to anyone who doesn't need to know exactly what
    session cache we're using.  For now, that just means adding another struct
    that stores the shm_zone and using that everywhere.
    Next step: adding a reference to a memcached store type.
Something went wrong with that request. Please try again.