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 }