diff options
Diffstat (limited to 'src/event/ngx_event_connect.c')
-rw-r--r-- | src/event/ngx_event_connect.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c index a433e1d90..24fa834ec 100644 --- a/src/event/ngx_event_connect.c +++ b/src/event/ngx_event_connect.c @@ -11,7 +11,7 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc) { int rc; - ngx_uint_t instance; + ngx_uint_t instance, rinstance, winstance; u_int event; time_t now; ngx_err_t err; @@ -156,11 +156,23 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc) #endif instance = rev->instance; + rinstance = rev->returned_instance; + winstance = wev->returned_instance; ngx_memzero(c, sizeof(ngx_connection_t)); ngx_memzero(rev, sizeof(ngx_event_t)); ngx_memzero(wev, sizeof(ngx_event_t)); + if (ngx_event_flags & NGX_HAVE_INSTANCE_EVENT) { + rev->use_instance = 1; + rev->instance = (u_char) !instance; + rev->returned_instance = (u_char) rinstance; + + wev->use_instance = 1; + wev->instance = (u_char) !instance; + wev->returned_instance = (u_char) winstance; + } + rev->index = NGX_INVALID_INDEX; wev->index = NGX_INVALID_INDEX; @@ -171,9 +183,6 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc) c->write = wev; wev->write = 1; - rev->instance = (u_char) !instance; - wev->instance = (u_char) !instance; - c->log = pc->log; rev->log = pc->log; wev->log = pc->log; |