Changeset 710:e60376cb15e8 in freeDiameter for libfdcore
- Timestamp:
- Feb 10, 2011, 4:00:53 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- libfdcore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdcore/cnxctx.c
r709 r710 622 622 again: 623 623 ret = recv(conn->cc_socket, buffer, length, 0); 624 /* Handle special case of timeout */ 625 if ((ret < 0) && (errno == EAGAIN)) { 624 /* Handle special case of timeout / interrupts */ 625 if ((ret < 0) && ((errno == EAGAIN) || (errno == EINTR))) { 626 pthread_testcancel(); 626 627 if (! fd_cnx_teststate(conn, CC_STATUS_CLOSING )) 627 628 goto again; /* don't care, just ignore */ … … 649 650 ret = send(conn->cc_socket, buffer, length, 0); 650 651 /* Handle special case of timeout */ 651 if ((ret < 0) && (errno == EAGAIN)) { 652 if ((ret < 0) && ((errno == EAGAIN) || (errno == EINTR))) { 653 pthread_testcancel(); 652 654 if (! fd_cnx_teststate(conn, CC_STATUS_CLOSING )) 653 655 goto again; /* don't care, just ignore */ -
libfdcore/sctp.c
r706 r710 1041 1041 ret = sendmsg(conn->cc_socket, &mhdr, 0); 1042 1042 /* Handle special case of timeout */ 1043 if ((ret < 0) && (errno == EAGAIN)) { 1043 if ((ret < 0) && ((errno == EAGAIN) || (errno == EINTR))) { 1044 pthread_testcancel(); 1044 1045 if (! fd_cnx_teststate(conn, CC_STATUS_CLOSING )) 1045 1046 goto again; /* don't care, just ignore */ … … 1099 1100 pthread_cleanup_push(free, data); 1100 1101 ret = recvmsg(conn->cc_socket, &mhdr, 0); 1102 pthread_testcancel(); 1101 1103 pthread_cleanup_pop(0); 1102 1104 1103 1105 /* First, handle timeouts (same as fd_cnx_s_recv) */ 1104 if ((ret < 0) && ( errno == EAGAIN)) {1106 if ((ret < 0) && ((errno == EAGAIN) || (errno == EINTR))) { 1105 1107 if (! fd_cnx_teststate(conn, CC_STATUS_CLOSING )) 1106 1108 goto again; /* don't care, just ignore */
Note: See TracChangeset
for help on using the changeset viewer.