]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Assume socklen_t is always available on all supported platforms (except on Windows...
authorOndřej Surý <ondrej@sury.org>
Wed, 5 Sep 2018 12:03:10 +0000 (14:03 +0200)
committerOndřej Surý <ondrej@sury.org>
Fri, 7 Sep 2018 10:17:40 +0000 (12:17 +0200)
acconfig.h
bin/tests/system/feature-test.c
config.h.in
configure
configure.in
lib/isc/unix/net.c
lib/isc/unix/socket.c
lib/isc/win32/include/isc/platform.h.in
lib/isc/win32/socket.c

index 5ab7a83f8a14eb6273cdf37daef0af63e586a778..28fd2841d6d11db96ad2bf127f40fe836cfca8c5 100644 (file)
@@ -17,9 +17,6 @@
  ***/
 @TOP@
 
-/* Define to the length type used by the socket API (socklen_t, size_t, int). */
-#undef ISC_SOCKADDR_LEN_T
-
 /* Define if threads need PTHREAD_SCOPE_SYSTEM */
 #undef NEED_PTHREAD_SCOPE_SYSTEM
 
index f95ce4742a5de09751cc2be83f2da7f2ec1970f2..44b0558d4fe8dabd65cb4a68fa25cbd18007683e 100644 (file)
@@ -175,7 +175,7 @@ main(int argc, char **argv) {
                int s;
                int n = -1;
                int v6only = -1;
-               ISC_SOCKADDR_LEN_T len = sizeof(v6only);
+               socklen_t len = sizeof(v6only);
 
                s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
                if (s >= 0) {
index bcfd015a8cf1a75e306052f2e462096e15a0bbb1..12c116f4926b4bb850a60fbd0db93c49b69f3993 100644 (file)
@@ -17,9 +17,6 @@
  *** it does not get installed.
  ***/
 
-/* Define to the length type used by the socket API (socklen_t, size_t, int). */
-#undef ISC_SOCKADDR_LEN_T
-
 /* Define if threads need PTHREAD_SCOPE_SYSTEM */
 #undef NEED_PTHREAD_SCOPE_SYSTEM
 
index 81d41b1998523d1d09de8143025f75ea5a7cb538..1657f57faa3d64ff198c4c248fd7fe202494cb3d 100755 (executable)
--- a/configure
+++ b/configure
@@ -759,7 +759,6 @@ GEOIPLINKOBJS
 GEOIPLINKSRCS
 ISC_PLATFORM_NORETURN_POST
 ISC_PLATFORM_NORETURN_PRE
-ISC_SOCKADDR_LEN_T
 expanded_sysconfdir
 PYTHON_INSTALL_LIB
 PYTHON_INSTALL_DIR
 
 
 
-ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
-#include <sys/types.h>
-#include <sys/socket.h>
-
-"
-if test "x$ac_cv_type_socklen_t" = xyes; then :
-  $as_echo "#define ISC_SOCKADDR_LEN_T socklen_t" >>confdefs.h
-
-else
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-int getsockname(int, struct sockaddr *, size_t *);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  $as_echo "#define ISC_SOCKADDR_LEN_T size_t" >>confdefs.h
-
-else
-  $as_echo "#define ISC_SOCKADDR_LEN_T int" >>confdefs.h
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
 if ${ac_cv_header_time+:} false; then :
index 608e62a59cf4b536320a32e3b33e0cc632c2ca15..a627195e0a0982f9fc18b9ee1571312f508b651f 100644 (file)
@@ -477,23 +477,6 @@ AC_TYPE_SIZE_T
 AC_TYPE_SSIZE_T
 AC_TYPE_UINTPTR_T
 
-AC_CHECK_TYPE(socklen_t,
-[AC_DEFINE(ISC_SOCKADDR_LEN_T, socklen_t)],
-[
-AC_TRY_COMPILE(
-[
-#include <sys/types.h>
-#include <sys/socket.h>
-int getsockname(int, struct sockaddr *, size_t *);
-],[],
-[AC_DEFINE(ISC_SOCKADDR_LEN_T, size_t)],
-[AC_DEFINE(ISC_SOCKADDR_LEN_T, int)])
-],
-[
-#include <sys/types.h>
-#include <sys/socket.h>
-])
-AC_SUBST(ISC_SOCKADDR_LEN_T)
 AC_HEADER_TIME
 
 #
index 5b5fb4db0e09a4c352e03f5bd578d7ca18cbc9d9..7d663c2df43fa3646e86f6e08b8c0403aa286bec 100644 (file)
@@ -36,8 +36,8 @@
 #include <isc/string.h>
 #include <isc/util.h>
 
-#ifndef ISC_SOCKADDR_LEN_T
-#define ISC_SOCKADDR_LEN_T unsigned int
+#ifndef socklen_t
+#define socklen_t unsigned int
 #endif
 
 /*%
@@ -366,24 +366,24 @@ isc_net_probe_ipv6pktinfo(void) {
 
 #if ISC_CMSG_IP_TOS || defined(IPV6_TCLASS)
 
-static inline ISC_SOCKADDR_LEN_T
-cmsg_len(ISC_SOCKADDR_LEN_T len) {
+static inline socklen_t
+cmsg_len(socklen_t len) {
 #ifdef CMSG_LEN
        return (CMSG_LEN(len));
 #else
-       ISC_SOCKADDR_LEN_T hdrlen;
+       socklen_t hdrlen;
 
        /*
         * Cast NULL so that any pointer arithmetic performed by CMSG_DATA
         * is correct.
         */
-       hdrlen = (ISC_SOCKADDR_LEN_T)CMSG_DATA(((struct cmsghdr *)NULL));
+       hdrlen = (socklen_t)CMSG_DATA(((struct cmsghdr *)NULL));
        return (hdrlen + len);
 #endif
 }
 
-static inline ISC_SOCKADDR_LEN_T
-cmsg_space(ISC_SOCKADDR_LEN_T len) {
+static inline socklen_t
+cmsg_space(socklen_t len) {
 #ifdef CMSG_SPACE
        return (CMSG_SPACE(len));
 #else
@@ -448,7 +448,7 @@ static bool
 cmsgsend(int s, int level, int type, struct addrinfo *res) {
        char strbuf[ISC_STRERRORSIZE];
        struct sockaddr_storage ss;
-       ISC_SOCKADDR_LEN_T len = sizeof(ss);
+       socklen_t len = sizeof(ss);
        struct msghdr msg;
        union {
                struct cmsghdr h;
index d8ecdcb3cb04e713d0820ec19870a1d020504ac1..f59a85e5cc2eb14ca0af6b78df845036fbc458e2 100644 (file)
@@ -207,8 +207,8 @@ typedef enum { poll_idle, poll_active, poll_checking } pollstate_t;
  * Some systems define the socket length argument as an int, some as size_t,
  * some as socklen_t.  This is here so it can be easily changed if needed.
  */
-#ifndef ISC_SOCKADDR_LEN_T
-#define ISC_SOCKADDR_LEN_T unsigned int
+#ifndef socklen_t
+#define socklen_t unsigned int
 #endif
 
 /*%
@@ -1195,24 +1195,24 @@ make_nonblock(int fd) {
  * Note that cmsg_space() could run slow on OSes that do not have
  * CMSG_SPACE.
  */
-static inline ISC_SOCKADDR_LEN_T
-cmsg_len(ISC_SOCKADDR_LEN_T len) {
+static inline socklen_t
+cmsg_len(socklen_t len) {
 #ifdef CMSG_LEN
        return (CMSG_LEN(len));
 #else
-       ISC_SOCKADDR_LEN_T hdrlen;
+       socklen_t hdrlen;
 
        /*
         * Cast NULL so that any pointer arithmetic performed by CMSG_DATA
         * is correct.
         */
-       hdrlen = (ISC_SOCKADDR_LEN_T)CMSG_DATA(((struct cmsghdr *)NULL));
+       hdrlen = (socklen_t)CMSG_DATA(((struct cmsghdr *)NULL));
        return (hdrlen + len);
 #endif
 }
 
-static inline ISC_SOCKADDR_LEN_T
-cmsg_space(ISC_SOCKADDR_LEN_T len) {
+static inline socklen_t
+cmsg_space(socklen_t len) {
 #ifdef CMSG_SPACE
        return (CMSG_SPACE(len));
 #else
@@ -2274,7 +2274,7 @@ static void
 set_rcvbuf(void) {
        int fd;
        int max = rcvbuf, min;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
 
        fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
        if (fd == -1) {
@@ -2328,7 +2328,7 @@ static void
 set_sndbuf(void) {
        int fd;
        int max = sndbuf, min;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
 
        fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 #if defined(ISC_PLATFORM_HAVEIPV6)
@@ -2463,7 +2463,7 @@ opensocket(isc__socketmgr_t *manager, isc__socket_t *sock,
        int on = 1;
 #endif
 #if defined(SO_RCVBUF) || defined(SO_SNDBUF)
-       ISC_SOCKADDR_LEN_T optlen;
+       socklen_t optlen;
        int size = 0;
 #endif
 
@@ -3412,7 +3412,7 @@ internal_accept(isc_task_t *me, isc_event_t *ev) {
        isc__socketmgr_t *manager;
        isc_socket_newconnev_t *dev;
        isc_task_t *task;
-       ISC_SOCKADDR_LEN_T addrlen;
+       socklen_t addrlen;
        int fd;
        isc_result_t result = ISC_R_SUCCESS;
        char strbuf[ISC_STRERRORSIZE];
@@ -5812,7 +5812,7 @@ internal_connect(isc_task_t *me, isc_event_t *ev) {
        isc_socket_connev_t *dev;
        int cc;
        isc_result_t result;
-       ISC_SOCKADDR_LEN_T optlen;
+       socklen_t optlen;
        char strbuf[ISC_STRERRORSIZE];
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
 
@@ -5948,7 +5948,7 @@ isc__socket_getpeername(isc_socket_t *sock0, isc_sockaddr_t *addressp) {
 isc_result_t
 isc__socket_getsockname(isc_socket_t *sock0, isc_sockaddr_t *addressp) {
        isc__socket_t *sock = (isc__socket_t *)sock0;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
        isc_result_t result;
        char strbuf[ISC_STRERRORSIZE];
 
@@ -6304,7 +6304,7 @@ isc_socketmgr_renderxml(isc_socketmgr_t *mgr0, xmlTextWriterPtr writer) {
        isc__socket_t *sock = NULL;
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
        isc_sockaddr_t addr;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
        int xmlrc;
 
        LOCK(&mgr->lock);
@@ -6416,7 +6416,7 @@ isc_socketmgr_renderjson(isc_socketmgr_t *mgr0, json_object *stats) {
        isc__socket_t *sock = NULL;
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
        isc_sockaddr_t addr;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
        json_object *obj, *array = json_object_new_array();
 
        CHECKMEM(array);
index 3ae3e3c89501aae6dec93ae0960def96f27b4f2a..b927888f1cda35109a84673f9dbc02ee89470193 100644 (file)
 #ifndef strtoull
 #define strtoull _strtoui64
 #endif
+
+#include <stdint.h>
+typedef uint32_t socklen_t;
+
 #endif
 
 /***
index b4b9e2d609fc9dfd098f56a4b0bf431810a08bc1..22aa74fb86e44ff0a65fcb8dea64956cb7467f4e 100644 (file)
@@ -112,14 +112,6 @@ static void consistent(isc_socket_t *sock);
 #define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
 #endif
 
-/*
- * Some systems define the socket length argument as an int, some as size_t,
- * some as socklen_t.  This is here so it can be easily changed if needed.
- */
-#ifndef ISC_SOCKADDR_LEN_T
-#define ISC_SOCKADDR_LEN_T unsigned int
-#endif
-
 /*
  * Define what the possible "soft" errors can be.  These are non-fatal returns
  * of various network related functions, like recv() and so on.
@@ -1649,7 +1641,7 @@ socket_create(isc_socketmgr_t *manager, int pf, isc_sockettype_t type,
        int on = 1;
 #endif
 #if defined(SO_RCVBUF)
-       ISC_SOCKADDR_LEN_T optlen;
+       socklen_t optlen;
        int size;
 #endif
        int socket_errno;
@@ -3655,7 +3647,7 @@ isc__socket_getpeername(isc_socket_t *sock, isc_sockaddr_t *addressp) {
 
 isc_result_t
 isc__socket_getsockname(isc_socket_t *sock, isc_sockaddr_t *addressp) {
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
        isc_result_t result;
        char strbuf[ISC_STRERRORSIZE];
 
@@ -4007,7 +3999,7 @@ isc_socketmgr_renderxml(isc_socketmgr_t *mgr, xmlTextWriterPtr writer)
        isc_socket_t *sock = NULL;
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
        isc_sockaddr_t addr;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
        int xmlrc;
 
        LOCK(&mgr->lock);
@@ -4118,7 +4110,7 @@ isc_socketmgr_renderjson(isc_socketmgr_t *mgr, json_object *stats) {
        isc_socket_t *sock = NULL;
        char peerbuf[ISC_SOCKADDR_FORMATSIZE];
        isc_sockaddr_t addr;
-       ISC_SOCKADDR_LEN_T len;
+       socklen_t len;
        json_object *obj, *array = json_object_new_array();
 
        CHECKMEM(array);