]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/pick_address: define in_addr_t if it is not defined 42477/head
authorKefu Chai <kchai@redhat.com>
Sat, 1 May 2021 15:30:18 +0000 (23:30 +0800)
committerKefu Chai <kchai@redhat.com>
Sun, 25 Jul 2021 11:20:50 +0000 (19:20 +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>
(cherry picked from commit a06f8edeca0a1d08ff181d18f913bcfe7570bdcd)

Conflicts:
cmake/modules/CephChecks.cmake: trivial resolution

cmake/modules/CephChecks.cmake
src/common/pick_address.cc
src/include/config-h.in.cmake
src/test/test_ipaddr.cc

index ca86dcbc73de8f7082d4da6eaa91c6fbacf3cd0e..6a9483f1a75c12bb92843d7e96c504cd7ddde3d5 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 39f7b0934b4d29f240b3c9b8a768648a60267439..93cab596aa0c24ebf35b1554944fa339f80d6d97 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 39aa5bbc42799b7f26c0ff692ae22622510a19c5..155f9df6d1cb5ea5991e4e2f10e930e95ca2c77e 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 def7df0b8c6f15202394050954abf942f067ad34..c94de964a8a964415d9343db1f5a545d5757a45a 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;