Changeset 746 for vendor/current/lib/async_req
- Timestamp:
- Nov 27, 2012, 4:56:06 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/lib/async_req/async_sock.c
r740 r746 326 326 struct async_connect_state *state = 327 327 tevent_req_data(req, struct async_connect_state); 328 329 /* 330 * Stevens, Network Programming says that if there's a 331 * successful connect, the socket is only writable. Upon an 332 * error, it's both readable and writable. 333 */ 334 if ((flags & (TEVENT_FD_READ|TEVENT_FD_WRITE)) 335 == (TEVENT_FD_READ|TEVENT_FD_WRITE)) { 336 int ret; 337 338 ret = connect(state->fd, 339 (struct sockaddr *)(void *)&state->address, 340 state->address_len); 341 if (ret == 0) { 342 TALLOC_FREE(fde); 343 tevent_req_done(req); 344 return; 345 } 346 347 if (errno == EINPROGRESS) { 348 /* Try again later, leave the fde around */ 349 return; 350 } 328 int ret; 329 330 ret = connect(state->fd, (struct sockaddr *)(void *)&state->address, 331 state->address_len); 332 if (ret == 0) { 333 state->sys_errno = 0; 351 334 TALLOC_FREE(fde); 352 tevent_req_error(req, errno); 353 return; 354 } 355 356 state->sys_errno = 0; 357 tevent_req_done(req); 335 tevent_req_done(req); 336 return; 337 } 338 if (errno == EINPROGRESS) { 339 /* Try again later, leave the fde around */ 340 return; 341 } 342 state->sys_errno = errno; 343 TALLOC_FREE(fde); 344 tevent_req_error(req, errno); 345 return; 358 346 } 359 347
Note:
See TracChangeset
for help on using the changeset viewer.