Mercurial > hg > nginx
comparison src/event/ngx_event_connect.c @ 162:96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 27 Oct 2003 21:01:00 +0000 |
parents | 88abd07d9f62 |
children | 84036764e215 |
comparison
equal
deleted
inserted
replaced
161:88abd07d9f62 | 162:96993d4d5067 |
---|---|
187 rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)); | 187 rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)); |
188 | 188 |
189 if (rc == -1) { | 189 if (rc == -1) { |
190 err = ngx_socket_errno; | 190 err = ngx_socket_errno; |
191 if (err != NGX_EINPROGRESS) { | 191 if (err != NGX_EINPROGRESS) { |
192 ngx_log_error(NGX_LOG_CRIT, pc->log, err, "connect() failed"); | 192 ngx_log_error(NGX_LOG_ERR, pc->log, err, "connect() failed"); |
193 | 193 |
194 if (ngx_close_socket(s) == -1) { | 194 if (ngx_close_socket(s) == -1) { |
195 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, | 195 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, |
196 ngx_close_socket_n " failed"); | 196 ngx_close_socket_n " failed"); |
197 } | 197 } |
209 | 209 |
210 } else { /* select, poll, /dev/poll */ | 210 } else { /* select, poll, /dev/poll */ |
211 event = NGX_LEVEL_EVENT; | 211 event = NGX_LEVEL_EVENT; |
212 } | 212 } |
213 | 213 |
214 if (ngx_add_event(rev, NGX_READ_EVENT, event) != NGX_OK) { | |
215 return NGX_ERROR; | |
216 } | |
217 | |
214 if (rc == -1) { | 218 if (rc == -1) { |
215 | 219 |
216 /* NGX_EINPROGRESS */ | 220 /* NGX_EINPROGRESS */ |
217 | 221 |
218 if (ngx_add_event(wev, NGX_WRITE_EVENT, event) != NGX_OK) { | 222 if (ngx_add_event(wev, NGX_WRITE_EVENT, event) != NGX_OK) { |
221 | 225 |
222 return NGX_AGAIN; | 226 return NGX_AGAIN; |
223 } | 227 } |
224 | 228 |
225 wev->ready = 1; | 229 wev->ready = 1; |
226 | |
227 if (ngx_add_event(rev, NGX_READ_EVENT, event) != NGX_OK) { | |
228 return NGX_ERROR; | |
229 } | |
230 | 230 |
231 return NGX_OK; | 231 return NGX_OK; |
232 } | 232 } |
233 | 233 |
234 | 234 |