]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Reduce sizeof isc_sockaddr from 152 to 48 bytes
authorOndřej Surý <ondrej@isc.org>
Tue, 12 Sep 2023 07:21:53 +0000 (09:21 +0200)
committerOndřej Surý <ondrej@isc.org>
Thu, 8 Feb 2024 14:13:47 +0000 (15:13 +0100)
After removing sockaddr_unix from isc_sockaddr, we can also remove
sockaddr_storage and reduce the isc_sockaddr size from 152 bytes to just
48 bytes needed to hold IPv6 addresses.

lib/dns/resconf.c
lib/isc/include/isc/sockaddr.h

index db042798e8b498535e5b18406d673c8504afdc1a..d57e0a9fa5054c7eb83a41dd370ceecf9fe9f715 100644 (file)
@@ -245,7 +245,7 @@ add_server(isc_mem_t *mctx, const char *address_str,
                goto cleanup;
        }
        address->length = (unsigned int)res->ai_addrlen;
-       memmove(&address->type.ss, res->ai_addr, res->ai_addrlen);
+       memmove(&address->type.sa, res->ai_addr, res->ai_addrlen);
        ISC_LINK_INIT(address, link);
        ISC_LIST_APPEND(*nameservers, address, link);
 
index e962a7a11cb5121140bd06ef07c15ccf5ec07b05..3ba52427a5f451147062fcda9b7c95222f989960 100644 (file)
  */
 struct isc_sockaddr {
        union {
-               struct sockaddr         sa;
-               struct sockaddr_in      sin;
-               struct sockaddr_in6     sin6;
-               struct sockaddr_storage ss;
+               struct sockaddr     sa;
+               struct sockaddr_in  sin;
+               struct sockaddr_in6 sin6;
        } type;
        unsigned int length; /* XXXRTH beginning? */
        ISC_LINK(struct isc_sockaddr) link;