[send|recv]msg tidy

Brian Ford Brian.Ford@flightsafety.com
Thu Jul 27 03:03:00 GMT 2006


Ok, I'll try this one.

2006-07-26  Brian Ford  <Brian.Ford@FlightSafety.com>

	* fhandler_socket.cc (fhandler_socket::recvmsg): Remove unused tot
	argument.  All callers changed.
	(fhandler_socket::sendmsg): Likewise.
	* net.cc (cygwin_recvmsg): Likewise.
	(cygwin_sendmsg): Likewise, and prevent calling sendmsg whith an
	invalid iovec.
	* fhandler.h (fhandler_socket::recvmsg): Adjust prototype.
	(fhandler_socket::sendmsg): Likewise.

-- 
Brian Ford
Lead Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
the best safety device in any aircraft is a well-trained crew...
-------------- next part --------------
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);


More information about the Cygwin-patches mailing list