Fix a bug in safe_read() that would cause short reads on an async socket
to return failure rather than the number of characters read.
This commit is contained in:
parent
387502255f
commit
bd49819f28
@ -1,5 +1,5 @@
|
|||||||
/* io.c - light wrappers for POSIX i/o functions
|
/* io.c - light wrappers for POSIX i/o functions
|
||||||
* Time-stamp: <2010-11-15 19:45:39 njk>
|
* Time-stamp: <2011-06-10 13:51:03 njk>
|
||||||
*
|
*
|
||||||
* (c) 2010 Nicholas J. Kain <njkain at gmail dot com>
|
* (c) 2010 Nicholas J. Kain <njkain at gmail dot com>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -43,6 +43,8 @@ int safe_read(int fd, char *buf, int len)
|
|||||||
if (r == -1) {
|
if (r == -1) {
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
continue;
|
continue;
|
||||||
|
else if ((errno == EAGAIN || errno == EWOULDBLOCK) && s > 0)
|
||||||
|
return s;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user