diff src/event/ngx_event_acceptex.c @ 100:7ebc8b7fb816

nginx-0.0.1-2003-06-03-19:42:58 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 03 Jun 2003 15:42:58 +0000
parents 738fe44c70d5
children 7e86d028d8f0
line wrap: on
line diff
--- a/src/event/ngx_event_acceptex.c
+++ b/src/event/ngx_event_acceptex.c
@@ -1,11 +1,9 @@
 
 #include <ngx_config.h>
+#include <ngx_core.h>
 
-#include <ngx_core.h>
-#include <ngx_types.h>
-#include <ngx_log.h>
 #include <ngx_listen.h>
-#include <ngx_connection.h>
+
 #include <ngx_event.h>
 #include <ngx_event_close.h>
 #include <ngx_iocp_module.h>
@@ -14,10 +12,7 @@
 
 
 
-/* This function should always return NGX_OK even there are some failures
-   because if we return NGX_ERROR then listening socket would be closed */
-
-int ngx_event_acceptex(ngx_event_t *ev)
+void ngx_event_acceptex(ngx_event_t *ev)
 {
     ngx_connection_t  *c;
 
@@ -25,25 +20,23 @@ int ngx_event_acceptex(ngx_event_t *ev)
 
     if (ev->ovlp.error) {
         ngx_log_error(NGX_LOG_CRIT, ev->log, ev->ovlp.error,
-                      "AcceptEx(%s) falied", c->addr_text.data);
-        return NGX_OK;
+                      "AcceptEx() falied for %s", c->addr_text.data);
+        return;
     }
 
-#if 0
-
-    /* can we do SO_UPDATE_ACCEPT_CONTEXT just before shutdown() ???
+    /* 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 */
-    if (setsockopt(context->accept_socket, SOL_SOCKET,
-                    SO_UPDATE_ACCEPT_CONTEXT, (char *)&nsd,
-                     sizeof(nsd))) {
-          ap_log_error(APLOG_MARK, APLOG_ERR, WSAGetLastError(), server_conf,
-                       "setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed.");
+    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 */
-
-#endif
+        /* non fatal - we can not only do lingering close */
+    }
 
     getacceptexsockaddrs(c->data, 0,
                          c->socklen + 16, c->socklen + 16,
@@ -57,7 +50,7 @@ int ngx_event_acceptex(ngx_event_t *ev)
 
     c->handler(c);
 
-    return NGX_OK;
+    return;
 
 }