Make socket_io_try_*() actually use read/write

So that they can be used with pipes.
This commit is contained in:
Přemysl Eric Janouch 2017-05-07 09:24:03 +02:00
parent 22edb6d489
commit 17322a3686
Signed by: p
GPG Key ID: B715679E3A361BE6

View File

@ -4336,8 +4336,8 @@ socket_io_try_read (int socket_fd, struct str *rb)
while (rb->len < read_limit) while (rb->len < read_limit)
{ {
str_reserve (rb, 1024); str_reserve (rb, 1024);
n_read = recv (socket_fd, rb->str + rb->len, n_read = read (socket_fd, rb->str + rb->len,
rb->alloc - rb->len - 1 /* null byte */, 0); rb->alloc - rb->len - 1 /* null byte */);
if (n_read > 0) if (n_read > 0)
{ {
@ -4353,7 +4353,7 @@ socket_io_try_read (int socket_fd, struct str *rb)
continue; continue;
int errno_save = errno; int errno_save = errno;
LOG_LIBC_FAILURE ("recv"); LOG_LIBC_FAILURE ("read");
errno = errno_save; errno = errno_save;
return SOCKET_IO_ERROR; return SOCKET_IO_ERROR;
} }
@ -4366,7 +4366,7 @@ socket_io_try_write (int socket_fd, struct str *wb)
ssize_t n_written; ssize_t n_written;
while (wb->len) while (wb->len)
{ {
n_written = send (socket_fd, wb->str, wb->len, 0); n_written = write (socket_fd, wb->str, wb->len);
if (n_written >= 0) if (n_written >= 0)
{ {
str_remove_slice (wb, 0, n_written); str_remove_slice (wb, 0, n_written);
@ -4379,7 +4379,7 @@ socket_io_try_write (int socket_fd, struct str *wb)
continue; continue;
int errno_save = errno; int errno_save = errno;
LOG_LIBC_FAILURE ("send"); LOG_LIBC_FAILURE ("write");
errno = errno_save; errno = errno_save;
return SOCKET_IO_ERROR; return SOCKET_IO_ERROR;
} }