Changeset 752 for trunk/server/lib/async_req
- Timestamp:
- Nov 29, 2012, 2:06:31 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 746,748
- Property svn:mergeinfo changed
-
trunk/server/lib/async_req/async_sock.c
r745 r752 331 331 struct async_connect_state *state = 332 332 tevent_req_data(req, struct async_connect_state); 333 334 /* 335 * Stevens, Network Programming says that if there's a 336 * successful connect, the socket is only writable. Upon an 337 * error, it's both readable and writable. 338 */ 339 if ((flags & (TEVENT_FD_READ|TEVENT_FD_WRITE)) 340 == (TEVENT_FD_READ|TEVENT_FD_WRITE)) { 341 int ret; 342 343 ret = connect(state->fd, 344 (struct sockaddr *)(void *)&state->address, 345 state->address_len); 346 if (ret == 0) { 347 TALLOC_FREE(fde); 348 tevent_req_done(req); 349 return; 350 } 351 352 if (errno == EINPROGRESS) { 353 /* Try again later, leave the fde around */ 354 return; 355 } 333 int ret; 334 335 ret = connect(state->fd, (struct sockaddr *)(void *)&state->address, 336 state->address_len); 337 if (ret == 0) { 338 state->sys_errno = 0; 356 339 TALLOC_FREE(fde); 357 tevent_req_error(req, errno); 358 return; 359 } 360 361 state->sys_errno = 0; 362 tevent_req_done(req); 340 tevent_req_done(req); 341 return; 342 } 343 if (errno == EINPROGRESS) { 344 /* Try again later, leave the fde around */ 345 return; 346 } 347 state->sys_errno = errno; 348 TALLOC_FREE(fde); 349 tevent_req_error(req, errno); 350 return; 363 351 } 364 352
Note:
See TracChangeset
for help on using the changeset viewer.