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) {