summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza@objectcomputing.com>2020-04-15 16:41:46 -0500
committerAdam Mitz <mitza@objectcomputing.com>2020-04-15 16:41:46 -0500
commit6bba4e6ab236c0357b76ed8f7e5e7792b608de22 (patch)
treef5738bee8c53013fb790729aedea0786566f2629
parent336b5d7ddb8a0d306e62e80b31f7838a4e359b36 (diff)
downloadATCD-6bba4e6ab236c0357b76ed8f7e5e7792b608de22.tar.gz
Support if_nametoindex on Windows - responded to review comments.
-rw-r--r--ACE/NEWS6
-rw-r--r--ACE/ace/OS_NS_sys_socket.h4
-rw-r--r--ACE/ace/OS_NS_sys_socket.inl16
-rw-r--r--ACE/ace/config-face-safety.h3
-rw-r--r--ACE/ace/config-win32-common.h9
-rw-r--r--ACE/ace/os_include/net/os_if.h4
6 files changed, 24 insertions, 18 deletions
diff --git a/ACE/NEWS b/ACE/NEWS
index 05156780e9b..8408097a097 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -1,7 +1,11 @@
USER VISIBLE CHANGES BETWEEN ACE-6.5.8 and ACE-6.5.9
====================================================
-. _WIN32_WINNT no longer defined but checked for at least 0x0600.
+. On Windows, ACE no longer defines _WIN32_WINNT. ACE wrappers for
+ if_nametoindex and if_indextoname are available if the version of the
+ Windows SDK supports them.
+
+. IPv6 extended datagram receive info now supported on macOS.
USER VISIBLE CHANGES BETWEEN ACE-6.5.7 and ACE-6.5.8
====================================================
diff --git a/ACE/ace/OS_NS_sys_socket.h b/ACE/ace/OS_NS_sys_socket.h
index 3c34e452902..faa6cd9bdfb 100644
--- a/ACE/ace/OS_NS_sys_socket.h
+++ b/ACE/ace/OS_NS_sys_socket.h
@@ -75,10 +75,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Accept_QoS_Params;
class ACE_QoS_Params;
-#if defined(ACE_WIN32)
- struct if_nameindex {};
-#endif
-
namespace ACE_OS
{
diff --git a/ACE/ace/OS_NS_sys_socket.inl b/ACE/ace/OS_NS_sys_socket.inl
index 5ff9ecae398..3da4104198e 100644
--- a/ACE/ace/OS_NS_sys_socket.inl
+++ b/ACE/ace/OS_NS_sys_socket.inl
@@ -1024,48 +1024,48 @@ ACE_INLINE unsigned int
ACE_OS::if_nametoindex (const char *ifname)
{
ACE_OS_TRACE ("ACE_OS::if_nametoindex");
-#if defined (ACE_LACKS_IF_NAME_INDEX)
+#ifdef ACE_LACKS_IF_NAMETOINDEX
ACE_UNUSED_ARG (ifname);
ACE_NOTSUP_RETURN (0);
#else
ACE_OSCALL_RETURN (::if_nametoindex (ifname), int, 0);
-#endif /* ACE_LACKS_IF_NAME_INDEX */
+#endif /* ACE_LACKS_IF_NAMETOINDEX */
}
ACE_INLINE char *
ACE_OS::if_indextoname (unsigned int ifindex, char *ifname)
{
ACE_OS_TRACE ("ACE_OS::if_indextoname");
-#if defined (ACE_LACKS_IF_NAME_INDEX)
+#ifdef ACE_LACKS_IF_NAMETOINDEX
ACE_UNUSED_ARG (ifindex);
ACE_UNUSED_ARG (ifname);
ACE_NOTSUP_RETURN (0);
#else
ACE_OSCALL_RETURN (::if_indextoname (ifindex, ifname), char *, 0);
-#endif /* ACE_LACKS_IF_NAME_INDEX */
+#endif /* ACE_LACKS_IF_NAMETOINDEX */
}
ACE_INLINE struct if_nameindex *
ACE_OS::if_nameindex (void)
{
ACE_OS_TRACE ("ACE_OS::if_nameindex");
-#if defined (ACE_LACKS_IF_NAME_INDEX) || defined(ACE_WIN32)
+#ifdef ACE_LACKS_IF_NAMEINDEX
ACE_NOTSUP_RETURN (0);
#else
ACE_OSCALL_RETURN (::if_nameindex (), struct if_nameindex *, 0);
-#endif /* ACE_LACKS_IF_NAME_INDEX */
+#endif /* ACE_LACKS_IF_NAMEINDEX */
}
ACE_INLINE void
ACE_OS::if_freenameindex (struct if_nameindex *ptr)
{
ACE_OS_TRACE ("ACE_OS::if_freenameindex");
-#if defined (ACE_LACKS_IF_NAME_INDEX) || defined(ACE_WIN32)
+#ifdef ACE_LACKS_IF_NAMEINDEX
ACE_UNUSED_ARG (ptr);
#else
if (ptr != 0)
::if_freenameindex (ptr);
-#endif /* ACE_LACKS_IF_NAME_INDEX */
+#endif /* ACE_LACKS_IF_NAMEINDEX */
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/config-face-safety.h b/ACE/ace/config-face-safety.h
index adfb8ca6630..b06fed1e5b0 100644
--- a/ACE/ace/config-face-safety.h
+++ b/ACE/ace/config-face-safety.h
@@ -305,7 +305,8 @@
# define ACE_LACKS_FSETPOS
# define ACE_LACKS_GETC
# define ACE_LACKS_GETTIMEOFDAY
-# define ACE_LACKS_IF_NAME_INDEX
+# define ACE_LACKS_IF_NAMEINDEX
+# define ACE_LACKS_IF_NAMETOINDEX
# define ACE_LACKS_IOCTL
# define ACE_LACKS_LOCALECONV
# define ACE_LACKS_MUNMAP
diff --git a/ACE/ace/config-win32-common.h b/ACE/ace/config-win32-common.h
index 4dd4fa0413a..6a9b39310fa 100644
--- a/ACE/ace/config-win32-common.h
+++ b/ACE/ace/config-win32-common.h
@@ -55,10 +55,6 @@
# endif /* !_FILE_OFFSET_BITS */
#endif /* _WIN64 || WIN64 */
-#if !defined (_WIN32_WINNT) || _WIN32_WINNT < 0x0600
-# error _WIN32_WINNT must be at least 0x0600
-#endif
-
// If the invoking procedure turned off debugging by setting NDEBUG, then
// also set ACE_NDEBUG, unless the user has already set it.
#if defined (NDEBUG)
@@ -566,6 +562,11 @@
# define ACE_WSOCK_VERSION 1, 1
#endif /* ACE_HAS_WINSOCK2 */
+#if _WIN32_WINNT < 0x600
+# define ACE_LACKS_IF_NAMETOINDEX
+#endif
+#define ACE_LACKS_IF_NAMEINDEX
+
// Platform supports IP multicast on Winsock 2
#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
# define ACE_HAS_IP_MULTICAST
diff --git a/ACE/ace/os_include/net/os_if.h b/ACE/ace/os_include/net/os_if.h
index a0d815e2165..c7496926d80 100644
--- a/ACE/ace/os_include/net/os_if.h
+++ b/ACE/ace/os_include/net/os_if.h
@@ -102,6 +102,10 @@ struct ifconf {
# define IFF_BROADCAST 0x2
#endif /* IFF_BROADCAST */
+#ifdef ACE_LACKS_IF_NAMEINDEX
+struct if_nameindex {};
+#endif
+
#ifdef __cplusplus
}
#endif /* __cplusplus */