Mercurial > hg > nginx
diff src/event/ngx_event_acceptex.c @ 102:7e86d028d8f0
nginx-0.0.1-2003-06-06-18:59:20 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 06 Jun 2003 14:59:20 +0000 |
parents | 7ebc8b7fb816 |
children | 6dfda4cf5200 |
line wrap: on
line diff
--- a/src/event/ngx_event_acceptex.c +++ b/src/event/ngx_event_acceptex.c @@ -5,37 +5,36 @@ #include <ngx_listen.h> #include <ngx_event.h> +#if 0 #include <ngx_event_close.h> #include <ngx_iocp_module.h> - -#include <ngx_event_acceptex.h> +#endif - -void ngx_event_acceptex(ngx_event_t *ev) +void ngx_event_acceptex(ngx_event_t *rev) { ngx_connection_t *c; - c = (ngx_connection_t *) ev->data; + c = (ngx_connection_t *) rev->data; + +ngx_log_debug(rev->log, "ADDR: %s" _ c->addr_text.data); - if (ev->ovlp.error) { - ngx_log_error(NGX_LOG_CRIT, ev->log, ev->ovlp.error, - "AcceptEx() falied for %s", c->addr_text.data); + if (rev->ovlp.error) { + ngx_log_error(NGX_LOG_CRIT, rev->log, rev->ovlp.error, + "AcceptEx() failed for %s", c->addr_text.data); return; } - /* TODO: can we do SO_UPDATE_ACCEPT_CONTEXT just before shutdown() ??? - or AcceptEx's context will be lost ??? */ + /* SO_UPDATE_ACCEPT_CONTEXT is required for shutdown() to work */ - /* SO_UPDATE_ACCEPT_CONTEXT is required for shutdown() to work */ if (setsockopt(c->fd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char *)&c->listening->fd, sizeof(ngx_socket_t)) == -1) { ngx_log_error(NGX_LOG_CRIT, ev->log, ngx_socket_errno, "setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed for %s", c->addr_text.data); - - /* non fatal - we can not only do lingering close */ + } else { + accept_context_updated = 1; } getacceptexsockaddrs(c->data, 0, @@ -75,8 +74,7 @@ int ngx_event_post_acceptex(ngx_listen_t if (s == -1) { ngx_log_error(NGX_LOG_ALERT, ls->log, ngx_socket_errno, - ngx_socket_n " for AcceptEx(%s) falied", - ls->addr_text.data); + ngx_socket_n " for AcceptEx() post failed"); return NGX_ERROR; } @@ -132,7 +130,7 @@ int ngx_event_post_acceptex(ngx_listen_t ngx_memcpy(c->log, ls->log, sizeof(ngx_log_t)); rev->log = wev->log = c->log; - if (ngx_iocp_add_event(rev) == NGX_ERROR) { + if (ngx_add_event(rev, 0, NGX_IOCP_IO) == NGX_ERROR) { return NGX_ERROR; }