socket-util: af_inet_ioctl() for Windows.
[sliver-openvswitch.git] / lib / socket-util.h
index d2bd109..1695985 100644 (file)
@@ -74,11 +74,13 @@ char *describe_fd(int fd);
  * in <netinet/ip.h> is used. */
 #define DSCP_DEFAULT (IPTOS_PREC_INTERNETCONTROL >> 2)
 
+#ifndef _WIN32
 /* Helpers for calling ioctl() on an AF_INET socket. */
 struct ifreq;
 int af_inet_ioctl(unsigned long int command, const void *arg);
 int af_inet_ifreq_ioctl(const char *name, struct ifreq *,
                         unsigned long int cmd, const char *cmd_name);
+#endif
 
 /* Functions for working with sockaddr_storage that might contain an IPv4 or
  * IPv6 address. */
@@ -98,6 +100,14 @@ static inline int rpl_setsockopt(int sock, int level, int optname,
 {
     return (setsockopt)(sock, level, optname, optval, optlen);
 }
+
+#define getsockopt(sock, level, optname, optval, optlen) \
+    rpl_getsockopt(sock, level, optname, optval, optlen)
+static inline int rpl_getsockopt(int sock, int level, int optname,
+                                 void *optval, socklen_t *optlen)
+{
+    return (getsockopt)(sock, level, optname, optval, optlen);
+}
 #endif
 
 /* In Windows platform, errno is not set for socket calls.