Mercurial > hg > nginx
comparison src/event/ngx_event_accept.c @ 86:3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 12 May 2003 15:52:24 +0000 |
parents | 869b10be682f |
children | 5f6d848dcbef |
comparison
equal
deleted
inserted
replaced
85:3549c2bf9eaf | 86:3973260705cc |
---|---|
14 /* This function should always return NGX_OK even there are some failures | 14 /* This function should always return NGX_OK even there are some failures |
15 because if we return NGX_ERROR then listening socket would be closed */ | 15 because if we return NGX_ERROR then listening socket would be closed */ |
16 | 16 |
17 int ngx_event_accept(ngx_event_t *ev) | 17 int ngx_event_accept(ngx_event_t *ev) |
18 { | 18 { |
19 int instance; | |
19 socklen_t len; | 20 socklen_t len; |
20 struct sockaddr *sa; | 21 struct sockaddr *sa; |
21 ngx_err_t err; | 22 ngx_err_t err; |
22 ngx_pool_t *pool; | 23 ngx_pool_t *pool; |
23 ngx_socket_t s; | 24 ngx_socket_t s; |
93 | 94 |
94 rev = &ngx_read_events[s]; | 95 rev = &ngx_read_events[s]; |
95 wev = &ngx_write_events[s]; | 96 wev = &ngx_write_events[s]; |
96 c = &ngx_connections[s]; | 97 c = &ngx_connections[s]; |
97 | 98 |
99 instance = rev->instance; | |
100 | |
98 ngx_memzero(rev, sizeof(ngx_event_t)); | 101 ngx_memzero(rev, sizeof(ngx_event_t)); |
99 ngx_memzero(wev, sizeof(ngx_event_t)); | 102 ngx_memzero(wev, sizeof(ngx_event_t)); |
100 ngx_memzero(c, sizeof(ngx_connection_t)); | 103 ngx_memzero(c, sizeof(ngx_connection_t)); |
101 | 104 |
102 c->pool = pool; | 105 c->pool = pool; |
106 c->socklen = len; | 109 c->socklen = len; |
107 c->addr = ls->addr; | 110 c->addr = ls->addr; |
108 c->addr_text_max_len = ls->addr_text_max_len; | 111 c->addr_text_max_len = ls->addr_text_max_len; |
109 c->post_accept_timeout = ls->post_accept_timeout; | 112 c->post_accept_timeout = ls->post_accept_timeout; |
110 | 113 |
114 rev->instance = wev->instance = !instance; | |
115 | |
111 rev->index = wev->index = NGX_INVALID_INDEX; | 116 rev->index = wev->index = NGX_INVALID_INDEX; |
112 | 117 |
113 rev->data = wev->data = c; | 118 rev->data = wev->data = c; |
114 c->read = rev; | 119 c->read = rev; |
115 c->write = wev; | 120 c->write = wev; |
116 | 121 |
117 c->fd = s; | 122 c->fd = s; |
118 c->unexpected_eof = 1; | 123 c->unexpected_eof = 1; |
119 wev->write = 1; | 124 wev->write = 1; |
120 rev->first = wev->first = 1; | |
121 | 125 |
122 #if (USE_KQUEUE) | 126 #if (USE_KQUEUE) |
123 wev->ready = 1; | 127 wev->ready = 1; |
124 #else | 128 #else |
125 if ((ngx_event_flags & NGX_USE_AIO_EVENT) == 0) { | 129 if ((ngx_event_flags & NGX_USE_AIO_EVENT) == 0) { |