in src/tcpstream.c [12:33]
int n_read(int fd, char *buffer, size_t total)
{
register int rtn;
register size_t left = total;
while (left > 0) {
rtn = recv(fd, buffer, left, 0);
if (rtn < 0) {
if (errno == EINTR || errno == EAGAIN)
break;
else
return ERROR_NETWORK_READ;
}
else if (rtn == 0)
break;
left -= rtn;
buffer += rtn;
}
return total - left;
}