mirror of https://github.com/aria2/aria2
2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Check both EAGAIN and EWOULDBLOCK * src/SocketCore.ccpull/1/head
parent
3842161f9b
commit
71d7a162d6
|
@ -1,3 +1,8 @@
|
||||||
|
2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Check both EAGAIN and EWOULDBLOCK
|
||||||
|
* src/SocketCore.cc
|
||||||
|
|
||||||
2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Removed ret == 0 checking for SSL_read(), SSL_write() and
|
Removed ret == 0 checking for SSL_read(), SSL_write() and
|
||||||
|
|
|
@ -71,6 +71,7 @@ namespace aria2 {
|
||||||
# define A2_EINPROGRESS WSAEWOULDBLOCK
|
# define A2_EINPROGRESS WSAEWOULDBLOCK
|
||||||
# define A2_EWOULDBLOCK WSAEWOULDBLOCK
|
# define A2_EWOULDBLOCK WSAEWOULDBLOCK
|
||||||
# define A2_EINTR WSAEINTR
|
# define A2_EINTR WSAEINTR
|
||||||
|
# define A2_WOULDBLOCK(e) (e == WSAEWOULDBLOCK)
|
||||||
#else // !__MINGW32__
|
#else // !__MINGW32__
|
||||||
# define A2_EINPROGRESS EINPROGRESS
|
# define A2_EINPROGRESS EINPROGRESS
|
||||||
# ifndef EWOULDBLOCK
|
# ifndef EWOULDBLOCK
|
||||||
|
@ -78,6 +79,7 @@ namespace aria2 {
|
||||||
# endif // EWOULDBLOCK
|
# endif // EWOULDBLOCK
|
||||||
# define A2_EWOULDBLOCK EWOULDBLOCK
|
# define A2_EWOULDBLOCK EWOULDBLOCK
|
||||||
# define A2_EINTR EINTR
|
# define A2_EINTR EINTR
|
||||||
|
# define A2_WOULDBLOCK(e) (e == EWOULDBLOCK || e == EAGAIN)
|
||||||
#endif // !__MINGW32__
|
#endif // !__MINGW32__
|
||||||
|
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
|
@ -614,7 +616,7 @@ ssize_t SocketCore::writeData(const char* data, size_t len)
|
||||||
if(!secure) {
|
if(!secure) {
|
||||||
while((ret = send(sockfd, data, len, 0)) == -1 && SOCKET_ERRNO == A2_EINTR);
|
while((ret = send(sockfd, data, len, 0)) == -1 && SOCKET_ERRNO == A2_EINTR);
|
||||||
if(ret == -1) {
|
if(ret == -1) {
|
||||||
if(SOCKET_ERRNO == A2_EWOULDBLOCK) {
|
if(A2_WOULDBLOCK(SOCKET_ERRNO)) {
|
||||||
_wantWrite = true;
|
_wantWrite = true;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -658,7 +660,7 @@ void SocketCore::readData(char* data, size_t& len)
|
||||||
while((ret = recv(sockfd, data, len, 0)) == -1 && SOCKET_ERRNO == A2_EINTR);
|
while((ret = recv(sockfd, data, len, 0)) == -1 && SOCKET_ERRNO == A2_EINTR);
|
||||||
|
|
||||||
if(ret == -1) {
|
if(ret == -1) {
|
||||||
if(SOCKET_ERRNO == A2_EWOULDBLOCK) {
|
if(A2_WOULDBLOCK(SOCKET_ERRNO)) {
|
||||||
_wantRead = true;
|
_wantRead = true;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -704,7 +706,7 @@ void SocketCore::peekData(char* data, size_t& len)
|
||||||
while((ret = recv(sockfd, data, len, MSG_PEEK)) == -1 &&
|
while((ret = recv(sockfd, data, len, MSG_PEEK)) == -1 &&
|
||||||
SOCKET_ERRNO == A2_EINTR);
|
SOCKET_ERRNO == A2_EINTR);
|
||||||
if(ret == -1) {
|
if(ret == -1) {
|
||||||
if(SOCKET_ERRNO == A2_EWOULDBLOCK) {
|
if(A2_WOULDBLOCK(SOCKET_ERRNO)) {
|
||||||
_wantRead = true;
|
_wantRead = true;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1056,7 +1058,7 @@ ssize_t SocketCore::writeData(const char* data, size_t len,
|
||||||
if(r == static_cast<ssize_t>(len)) {
|
if(r == static_cast<ssize_t>(len)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(r == -1 && SOCKET_ERRNO == A2_EWOULDBLOCK) {
|
if(r == -1 && A2_WOULDBLOCK(SOCKET_ERRNO)) {
|
||||||
_wantWrite = true;
|
_wantWrite = true;
|
||||||
r = 0;
|
r = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -1081,7 +1083,7 @@ ssize_t SocketCore::readDataFrom(char* data, size_t len,
|
||||||
while((r = recvfrom(sockfd, data, len, 0, addrp, &sockaddrlen)) == -1 &&
|
while((r = recvfrom(sockfd, data, len, 0, addrp, &sockaddrlen)) == -1 &&
|
||||||
A2_EINTR == SOCKET_ERRNO);
|
A2_EINTR == SOCKET_ERRNO);
|
||||||
if(r == -1) {
|
if(r == -1) {
|
||||||
if(SOCKET_ERRNO == A2_EWOULDBLOCK) {
|
if(A2_WOULDBLOCK(SOCKET_ERRNO)) {
|
||||||
_wantRead = true;
|
_wantRead = true;
|
||||||
r = 0;
|
r = 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue