diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-04-18 19:27:28 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-04-18 19:27:28 +0000 |
| commit | f7a08d5f9ab224c7d3751693c1ba159a5d6d5900 (patch) | |
| tree | 09afd5284fde0f9f2b015164f334a81b9a9e00b8 /src/event | |
| parent | 6ac68bcc4c3cbc2711fccbc78d6df3164c6dbde3 (diff) | |
| download | nginx-f7a08d5f9ab224c7d3751693c1ba159a5d6d5900.tar.gz nginx-f7a08d5f9ab224c7d3751693c1ba159a5d6d5900.tar.bz2 | |
support attaching to an existent Win32 shared memory
Diffstat (limited to 'src/event')
| -rw-r--r-- | src/event/ngx_event.c | 4 | ||||
| -rw-r--r-- | src/event/ngx_event_openssl.c | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index 1f2516aa5..1f8693a3c 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -506,6 +506,8 @@ ngx_event_module_init(ngx_cycle_t *cycle) #endif shm.size = size; + shm.name.len = sizeof("nginx_shared_zone"); + shm.name.data = (u_char *) "nginx_shared_zone"; shm.log = cycle->log; if (ngx_shm_alloc(&shm) != NGX_OK) { @@ -535,7 +537,7 @@ ngx_event_module_init(ngx_cycle_t *cycle) #endif - *ngx_connection_counter = 1; + (void) ngx_atomic_cmp_set(ngx_connection_counter, 0, 1); ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "counter: %p, %d", diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c index 2ab3f16fd..1935d4ca9 100644 --- a/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c @@ -1421,6 +1421,11 @@ ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data) return NGX_OK; } + if (shm_zone->shm.exists) { + shm_zone->data = data; + return NGX_OK; + } + shpool = (ngx_slab_pool_t *) shm_zone->shm.addr; cache = ngx_slab_alloc(shpool, sizeof(ngx_ssl_session_cache_t)); @@ -1428,6 +1433,9 @@ ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data) return NGX_ERROR; } + shpool->data = cache; + shm_zone->data = cache; + ngx_rbtree_init(&cache->session_rbtree, &cache->sentinel, ngx_ssl_session_rbtree_insert_value); @@ -1443,8 +1451,6 @@ ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data) ngx_sprintf(shpool->log_ctx, " in SSL session shared cache \"%V\"%Z", &shm_zone->shm.name); - shm_zone->data = cache; - return NGX_OK; } |
