socket-util: Avoid using the identical message for different errors
[sliver-openvswitch.git] / lib / socket-util.c
index 6bc5d2c..54ef956 100644 (file)
@@ -27,7 +27,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/ioctl.h>
-#include <sys/resource.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
@@ -251,6 +250,7 @@ check_connection_completion(int fd)
     }
 }
 
+#ifndef _WIN32
 /* Drain all the data currently in the receive queue of a datagram socket (and
  * possibly additional data).  There is no way to know how many packets are in
  * the receive queue, but we do know that the total number of bytes queued does
@@ -276,7 +276,8 @@ drain_rcvbuf(int fd)
          * On other Unix-like OSes, MSG_TRUNC has no effect in the flags
          * argument. */
         char buffer[LINUX_DATAPATH ? 1 : 2048];
-        ssize_t n_bytes = recv(fd, buffer, sizeof buffer, MSG_TRUNC);
+        ssize_t n_bytes = recv(fd, buffer, sizeof buffer,
+                               MSG_TRUNC | MSG_DONTWAIT);
         if (n_bytes <= 0 || n_bytes >= rcvbuf) {
             break;
         }
@@ -284,6 +285,7 @@ drain_rcvbuf(int fd)
     }
     return 0;
 }
+#endif
 
 /* Returns the size of socket 'sock''s receive buffer (SO_RCVBUF), or a
  * negative errno value if an error occurs. */
@@ -751,7 +753,7 @@ inet_open_active(int style, const char *target, uint16_t default_port,
      * connect(), the handshake SYN frames will be sent with a TOS of 0. */
     error = set_dscp(fd, dscp);
     if (error) {
-        VLOG_ERR("%s: socket: %s", target, sock_strerror(error));
+        VLOG_ERR("%s: set_dscp: %s", target, sock_strerror(error));
         goto exit;
     }
 
@@ -888,7 +890,7 @@ inet_open_passive(int style, const char *target, int default_port,
      * connect(), the handshake SYN frames will be sent with a TOS of 0. */
     error = set_dscp(fd, dscp);
     if (error) {
-        VLOG_ERR("%s: socket: %s", target, sock_strerror(error));
+        VLOG_ERR("%s: set_dscp: %s", target, sock_strerror(error));
         goto error;
     }