comparison src/event/ngx_event_connect.c @ 2350:ee07289b697a stable-0.6

r2118 merge: handle connect()'s EAGAIN on Linux
author Igor Sysoev <igor@sysoev.ru>
date Thu, 27 Nov 2008 14:28:19 +0000
parents 192443881e51
children 042dcbaead66
comparison
equal deleted inserted replaced
2349:81f4bf441eb0 2350:ee07289b697a
137 rc = connect(s, pc->sockaddr, pc->socklen); 137 rc = connect(s, pc->sockaddr, pc->socklen);
138 138
139 if (rc == -1) { 139 if (rc == -1) {
140 err = ngx_socket_errno; 140 err = ngx_socket_errno;
141 141
142 /* Winsock returns WSAEWOULDBLOCK (NGX_EAGAIN) */ 142
143 143 if (err != NGX_EINPROGRESS
144 if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { 144 #if (NGX_WIN32)
145 145 /* Winsock returns WSAEWOULDBLOCK (NGX_EAGAIN) */
146 && err != NGX_EAGAIN
147 #endif
148 )
149 {
146 if (err == NGX_ECONNREFUSED 150 if (err == NGX_ECONNREFUSED
151 #if (NGX_LINUX)
152 /*
153 * Linux returns EAGAIN instead of ECONNREFUSED
154 * for unix sockets if listen queue is full
155 */
156 || err == NGX_EAGAIN
157 #endif
147 || err == NGX_ENETDOWN 158 || err == NGX_ENETDOWN
148 || err == NGX_ENETUNREACH 159 || err == NGX_ENETUNREACH
149 || err == NGX_EHOSTDOWN 160 || err == NGX_EHOSTDOWN
150 || err == NGX_EHOSTUNREACH) 161 || err == NGX_EHOSTUNREACH)
151 { 162 {