int n_write()

in src/tcpstream.c [35:55]


int n_write(int fd, const char *buffer, size_t total)
{
	register int rtn;
	register size_t left = total;

	while (left > 0) {
		rtn = send(fd, buffer, left, 0);
		if (rtn < 0) {
			if (errno == EINTR || errno == EAGAIN)
				return total - left;
			else
				return ERROR_NETWORK_WRITE;
		}
		else if (rtn == 0)
			return ERROR_NETWORK_WRITE;

		left -= rtn;
		buffer += rtn;
	}
	return total;
}