]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/pick_address: define in_addr_t if it is not defined 41116/head
authorKefu Chai <kchai@redhat.com>
Sat, 1 May 2021 15:30:18 +0000 (23:30 +0800)
committerKefu Chai <kchai@redhat.com>
Sat, 1 May 2021 15:30:53 +0000 (23:30 +0800)
neither mingw not not have in_addr_t defined, see
https://docs.microsoft.com/en-us/windows/win32/api/winsock2/ns-winsock2-in_addr,
so define it if it is not defined.

Signed-off-by: Kefu Chai <kchai@redhat.com>
cmake/modules/CephChecks.cmake
src/common/pick_address.cc
src/include/config-h.in.cmake
src/test/test_ipaddr.cc

index 46b50b387c70ceb3879ef148c2927761354589ac..26a5d0bcd7ae32a7a57c48b088d4670922e2a651 100644 (file)
@@ -56,7 +56,7 @@ endif()
 CHECK_INCLUDE_FILES("valgrind/helgrind.h" HAVE_VALGRIND_HELGRIND_H)
 
 include(CheckTypeSize)
-set(CMAKE_EXTRA_INCLUDE_FILES "linux/types.h")
+set(CMAKE_EXTRA_INCLUDE_FILES "linux/types.h" "netinet/in.h")
 CHECK_TYPE_SIZE(__u8 __U8) 
 CHECK_TYPE_SIZE(__u16 __U16) 
 CHECK_TYPE_SIZE(__u32 __U32) 
@@ -65,6 +65,7 @@ CHECK_TYPE_SIZE(__s8 __S8)
 CHECK_TYPE_SIZE(__s16 __S16) 
 CHECK_TYPE_SIZE(__s32 __S32) 
 CHECK_TYPE_SIZE(__s64 __S64)
+CHECK_TYPE_SIZE(in_addr_t IN_ADDR_T)
 unset(CMAKE_EXTRA_INCLUDE_FILES)
 
 include(CheckSymbolExists)
index bf40daf2b16baccab57482637d99d124e82865bd..203e1d63f170b14e029c9a1d50f0e194c2cdbcd4 100644 (file)
 #include "common/errno.h"
 #include "common/numa.h"
 
+#ifndef HAVE_IN_ADDR_T
+typedef uint32_t in_addr_t;
+#endif
+
+#ifndef IN_LOOPBACKNET
+#define IN_LOOPBACKNET 127
+#endif
+
 #define dout_subsys ceph_subsys_
 
 using std::string;
index 013d62d613f75cabfdf33e1eac2ce33387f422ff..504ff525ba94cae619cce94a4d886ef2a640e367 100644 (file)
@@ -63,6 +63,9 @@
 /* Define to 1 if the system has the type `__u8'. */
 #cmakedefine HAVE___U8 1
 
+/* Define if the system has the type `in_addr_t' */
+#cmakedefine HAVE_IN_ADDR_T
+
 /* Define if you have res_nquery */
 #cmakedefine HAVE_RES_NQUERY
 
index 56a16644ed5fe3bd4b8fffaa544e9368fbd76e8e..f98560f817d7e3445f170da14a1face44dd5bf1f 100644 (file)
 #endif
 #include <arpa/inet.h>
 #include <ifaddrs.h>
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#else
 #include <net/if.h>
+#endif
 
 static void ipv4(struct sockaddr_in *addr, const char *s) {
   int err;