diff options
Diffstat (limited to 'src/event/ngx_event_connect.c')
| -rw-r--r-- | src/event/ngx_event_connect.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c index 8fbc51bd8..296ec7c06 100644 --- a/src/event/ngx_event_connect.c +++ b/src/event/ngx_event_connect.c @@ -180,8 +180,8 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc) ngx_memzero(&addr, sizeof(struct sockaddr_in)); addr.sin_family = AF_INET; - addr.sin_addr.s_addr = peer->addr; addr.sin_port = peer->port; + addr.sin_addr.s_addr = peer->addr; ngx_log_debug(pc->log, "CONNECT: %s" _ peer->addr_port_text.data); @@ -189,7 +189,10 @@ ngx_log_debug(pc->log, "CONNECT: %s" _ peer->addr_port_text.data); if (rc == -1) { err = ngx_socket_errno; - if (err != NGX_EINPROGRESS) { + + /* Winsock returns WSAEWOULDBLOCK */ + + if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { ngx_log_error(NGX_LOG_ERR, pc->log, err, "connect() failed"); if (ngx_close_socket(s) == -1) { @@ -221,7 +224,8 @@ ngx_log_debug(pc->log, "CONNECT: %s" _ peer->addr_port_text.data); /* * aio allows to post operation on non-connected socket - * at least in FreeBSD + * at least in FreeBSD. + * NT does not support it. * * TODO: check in Win32, etc. As workaround we can use NGX_ONESHOT_EVENT */ |
