aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_connection.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-10-12 13:50:36 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-10-12 13:50:36 +0000
commit784522377ec160bc148ff3bb40fb87ede7506d5d (patch)
tree0c76a9c51a1c2ffa35ad3eb05e3b80f6cc19c60a /src/core/ngx_connection.c
parentbbfe3033bc82427b15ccf73767e786cbb12a7627 (diff)
downloadnginx-release-0.3.2.tar.gz
nginx-release-0.3.2.zip
nginx-0.3.2-RELEASE importrelease-0.3.2
*) Feature: the Sun Studio 10 C compiler support. *) Feature: the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout" directives.
Diffstat (limited to 'src/core/ngx_connection.c')
-rw-r--r--src/core/ngx_connection.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index a7371bf89..3f36d3155 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -372,7 +372,9 @@ ngx_close_listening_sockets(ngx_cycle_t *cycle)
ngx_connection_t *
ngx_get_connection(ngx_socket_t s, ngx_log_t *log)
{
- ngx_connection_t *c;
+ ngx_uint_t instance;
+ ngx_event_t *rev, *wev;
+ ngx_connection_t *c;
/* disable warning: Win32 SOCKET is u_int while UNIX socket is int */
@@ -407,6 +409,32 @@ ngx_get_connection(ngx_socket_t s, ngx_log_t *log)
ngx_cycle->files[s] = c;
}
+ rev = c->read;
+ wev = c->write;
+
+ ngx_memzero(c, sizeof(ngx_connection_t));
+
+ c->read = rev;
+ c->write = wev;
+ c->fd = s;
+ c->log = log;
+
+ instance = rev->instance;
+
+ ngx_memzero(rev, sizeof(ngx_event_t));
+ ngx_memzero(wev, sizeof(ngx_event_t));
+
+ rev->instance = !instance;
+ wev->instance = !instance;
+
+ rev->index = NGX_INVALID_INDEX;
+ wev->index = NGX_INVALID_INDEX;
+
+ rev->data = c;
+ wev->data = c;
+
+ wev->write = 1;
+
return c;
}