diff src/event/ngx_event_connect.c @ 167:8aef3c72e5da

nginx-0.0.1-2003-10-30-19:51:33 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 30 Oct 2003 16:51:33 +0000
parents 389d7ee9fa60
children ba5dbb949603
line wrap: on
line diff
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -203,16 +203,32 @@ ngx_log_debug(pc->log, "CONNECT: %s" _ p
     }
 
     if (ngx_event_flags & NGX_USE_AIO_EVENT) {
+
         /* aio, iocp */
+
+        if (ngx_blocking(s) == -1) {
+            ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
+                          ngx_blocking_n " failed");
+
+            if (ngx_close_socket(s) == -1) {
+                ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
+                              ngx_close_socket_n " failed");
+            }
+
+            return NGX_ERROR;
+        }
+
+        /*
+         * aio allows to post operation on non-connected socket
+         * at least in FreeBSD
+         * 
+         * TODO: check in Win32, etc.
+         */
  
-#if 1
-        /* TODO: NGX_EINPROGRESS */
-
         rev->ready = 1;
         wev->ready = 1;
 
         return NGX_OK;
-#endif
     }
 
     /* TODO: epoll */