summaryrefslogtreecommitdiffhomepage
path: root/src/event
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-04-18 19:27:28 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-04-18 19:27:28 +0000
commitf7a08d5f9ab224c7d3751693c1ba159a5d6d5900 (patch)
tree09afd5284fde0f9f2b015164f334a81b9a9e00b8 /src/event
parent6ac68bcc4c3cbc2711fccbc78d6df3164c6dbde3 (diff)
downloadnginx-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.c4
-rw-r--r--src/event/ngx_event_openssl.c10
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;
}