summaryrefslogtreecommitdiffhomepage
path: root/src/event/ngx_event_connect.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-10-30 16:51:33 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-10-30 16:51:33 +0000
commitb5910d497e51bac754b0a5bdbd58318b653e0859 (patch)
tree332719a81bd2b8c7efb7ad5a1077d9c36bc879b5 /src/event/ngx_event_connect.c
parent68ee8f144242965c9650ad99604d1717c0f84c18 (diff)
downloadnginx-b5910d497e51bac754b0a5bdbd58318b653e0859.tar.gz
nginx-b5910d497e51bac754b0a5bdbd58318b653e0859.tar.bz2
nginx-0.0.1-2003-10-30-19:51:33 import
Diffstat (limited to 'src/event/ngx_event_connect.c')
-rw-r--r--src/event/ngx_event_connect.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c
index c697c1be5..e42efb8cb 100644
--- 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" _ peer->addr_port_text.data);
}
if (ngx_event_flags & NGX_USE_AIO_EVENT) {
+
/* aio, iocp */
-
-#if 1
- /* TODO: NGX_EINPROGRESS */
+ 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.
+ */
+
rev->ready = 1;
wev->ready = 1;
return NGX_OK;
-#endif
}
/* TODO: epoll */