Index: fhandler.h =================================================================== RCS file: /cvs/src/src/winsup/cygwin/fhandler.h,v retrieving revision 1.299 diff -u -p -u -p -r1.299 fhandler.h --- fhandler.h 25 Jul 2006 19:23:23 -0000 1.299 +++ fhandler.h 27 Jul 2006 02:39:20 -0000 @@ -463,14 +463,14 @@ class fhandler_socket: public fhandler_b struct sockaddr *from, int *fromlen); ssize_t recvfrom (void *ptr, size_t len, int flags, struct sockaddr *from, int *fromlen); - ssize_t recvmsg (struct msghdr *msg, int flags, ssize_t tot = -1); + ssize_t recvmsg (struct msghdr *msg, int flags); ssize_t writev (const struct iovec *, int iovcnt, ssize_t tot = -1); inline ssize_t send_internal (struct _WSABUF *wsabuf, DWORD wsacnt, int flags, const struct sockaddr *to, int tolen); ssize_t sendto (const void *ptr, size_t len, int flags, const struct sockaddr *to, int tolen); - ssize_t sendmsg (const struct msghdr *msg, int flags, ssize_t tot = -1); + ssize_t sendmsg (const struct msghdr *msg, int flags); int ioctl (unsigned int cmd, void *); int fcntl (int cmd, void *); Index: fhandler_socket.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/fhandler_socket.cc,v retrieving revision 1.192 diff -u -p -u -p -r1.192 fhandler_socket.cc --- fhandler_socket.cc 25 Jul 2006 19:23:23 -0000 1.192 +++ fhandler_socket.cc 27 Jul 2006 02:39:21 -0000 @@ -1247,7 +1247,7 @@ fhandler_socket::readv (const struct iov msg_flags: 0 }; - return recvmsg (&msg, 0, tot); + return recvmsg (&msg, 0); } inline ssize_t @@ -1311,7 +1311,7 @@ fhandler_socket::recvfrom (void *ptr, si } int -fhandler_socket::recvmsg (struct msghdr *msg, int flags, ssize_t tot) +fhandler_socket::recvmsg (struct msghdr *msg, int flags) { if (CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR) ((struct OLD_msghdr *) msg)->msg_accrightslen = 0; @@ -1360,7 +1360,7 @@ fhandler_socket::writev (const struct io msg_flags: 0 }; - return sendmsg (&msg, 0, tot); + return sendmsg (&msg, 0); } inline ssize_t @@ -1417,7 +1417,7 @@ fhandler_socket::sendto (const void *ptr } int -fhandler_socket::sendmsg (const struct msghdr *msg, int flags, ssize_t tot) +fhandler_socket::sendmsg (const struct msghdr *msg, int flags) { if (get_addr_family () == AF_LOCAL) { Index: net.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/net.cc,v retrieving revision 1.214 diff -u -p -u -p -r1.214 net.cc --- net.cc 25 Jul 2006 19:23:23 -0000 1.214 +++ net.cc 27 Jul 2006 02:39:21 -0000 @@ -2070,7 +2070,7 @@ cygwin_recvmsg (int fd, struct msghdr *m { res = check_iovec_for_read (msg->msg_iov, msg->msg_iovlen); if (res > 0) - res = fh->recvmsg (msg, flags, res); // res == iovec tot + res = fh->recvmsg (msg, flags); } syscall_printf ("%d = recvmsg (%d, %p, %x)", res, fd, msg, flags); @@ -2092,7 +2092,8 @@ cygwin_sendmsg (int fd, const struct msg else { res = check_iovec_for_write (msg->msg_iov, msg->msg_iovlen); - res = fh->sendmsg (msg, flags, res); // res == iovec tot + if (res >= 0) + res = fh->sendmsg (msg, flags); } syscall_printf ("%d = sendmsg (%d, %p, %x)", res, fd, msg, flags);