summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtc%netscape.com <devnull@localhost>2001-06-24 05:51:06 +0000
committerwtc%netscape.com <devnull@localhost>2001-06-24 05:51:06 +0000
commit3e39715aeefda49a5c14af7b0d57870cf67ff855 (patch)
tree3bb0ae229f9588786a02d40489eb5572c21d3512
parent76f267689261abce31eca1d3c17778f5c6245488 (diff)
downloadnspr-hg-3e39715aeefda49a5c14af7b0d57870cf67ff855.tar.gz
Bugzilla bug 87493: PR_Accept() should retry after getting ECONNABORTED.
-rw-r--r--pr/src/pthreads/ptio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pr/src/pthreads/ptio.c b/pr/src/pthreads/ptio.c
index 9c72d5d1..c51dd02c 100644
--- a/pr/src/pthreads/ptio.c
+++ b/pr/src/pthreads/ptio.c
@@ -706,7 +706,7 @@ static PRBool pt_accept_cont(pt_Continuation *op, PRInt16 revents)
if (-1 == op->result.code)
{
op->syserrno = errno;
- if (EWOULDBLOCK == errno || EAGAIN == errno) /* the only thing we allow */
+ if (EWOULDBLOCK == errno || EAGAIN == errno || ECONNABORTED == errno)
return PR_FALSE; /* do nothing - this one ain't finished */
}
return PR_TRUE;
@@ -1546,7 +1546,9 @@ static PRFileDesc* pt_Accept(
{
if (fd->secret->nonblocking) goto failed;
- if (EWOULDBLOCK != syserrno && EAGAIN != syserrno) goto failed;
+ if (EWOULDBLOCK != syserrno && EAGAIN != syserrno
+ && ECONNABORTED != syserrno)
+ goto failed;
else
{
if (PR_INTERVAL_NO_WAIT == timeout) syserrno = ETIMEDOUT;