Index: lib/libnv/msgio.h =================================================================== --- lib/libnv/msgio.h +++ lib/libnv/msgio.h @@ -47,6 +47,6 @@ int fd_recv(int sock, int *fds, size_t nfds); int buf_send(int sock, void *buf, size_t size); -int buf_recv(int sock, void *buf, size_t size); +int buf_recv(int sock, void *buf, size_t size, int flags); #endif /* !_MSGIO_H_ */ Index: lib/libnv/msgio.c =================================================================== --- lib/libnv/msgio.c +++ lib/libnv/msgio.c @@ -450,7 +450,7 @@ } int -buf_recv(int sock, void *buf, size_t size) +buf_recv(int sock, void *buf, size_t size, int flags) { ssize_t done; unsigned char *ptr; @@ -461,7 +461,7 @@ ptr = buf; while (size > 0) { fd_wait(sock, true); - done = recv(sock, ptr, size, 0); + done = recv(sock, ptr, size, flags); if (done == -1) { if (errno == EINTR) continue; Index: sys/contrib/libnv/nvlist.c =================================================================== --- sys/contrib/libnv/nvlist.c +++ sys/contrib/libnv/nvlist.c @@ -1280,7 +1280,7 @@ size_t nfds, size, i; int *fds; - if (buf_recv(sock, &nvlhdr, sizeof(nvlhdr)) == -1) + if (buf_recv(sock, &nvlhdr, sizeof(nvlhdr), 0) == -1) return (NULL); if (!nvlist_check_header(&nvlhdr)) @@ -1298,7 +1298,7 @@ ret = NULL; fds = NULL; - if (buf_recv(sock, buf + sizeof(nvlhdr), size - sizeof(nvlhdr)) == -1) + if (buf_recv(sock, buf + sizeof(nvlhdr), size - sizeof(nvlhdr), 0) == -1) goto out; if (nfds > 0) {