Mercurial > hg > nginx
comparison src/event/ngx_event_connect.c @ 288:f81d075ad172
nginx-0.0.2-2004-03-14-23:46:25 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 14 Mar 2004 20:46:25 +0000 |
parents | 70e1c7d2b83d |
children | 87e73f067470 |
comparison
equal
deleted
inserted
replaced
287:35a6a9df2d25 | 288:f81d075ad172 |
---|---|
177 rev->log = pc->log; | 177 rev->log = pc->log; |
178 wev->log = pc->log; | 178 wev->log = pc->log; |
179 | 179 |
180 c->fd = s; | 180 c->fd = s; |
181 | 181 |
182 c->log_error = pc->log_error; | |
183 | |
182 pc->connection = c; | 184 pc->connection = c; |
183 | 185 |
184 /* | 186 /* |
185 * TODO: MT: - atomic increment (x86: lock xadd) | 187 * TODO: MT: - atomic increment (x86: lock xadd) |
186 * or protection by critical section or mutex | 188 * or protection by critical section or mutex |
210 rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)); | 212 rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)); |
211 | 213 |
212 if (rc == -1) { | 214 if (rc == -1) { |
213 err = ngx_socket_errno; | 215 err = ngx_socket_errno; |
214 | 216 |
215 /* Winsock returns WSAEWOULDBLOCK */ | 217 /* Winsock returns WSAEWOULDBLOCK (NGX_EAGAIN) */ |
216 | 218 |
217 if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { | 219 if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { |
218 ngx_log_error(NGX_LOG_ERR, pc->log, err, "connect() failed"); | 220 ngx_connection_error(c, err, "connect() failed"); |
219 | 221 |
220 if (ngx_close_socket(s) == -1) { | 222 if (ngx_close_socket(s) == -1) { |
221 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, | 223 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, |
222 ngx_close_socket_n " failed"); | 224 ngx_close_socket_n " failed"); |
223 } | 225 } |