From: Ondřej Surý Date: Tue, 12 Sep 2023 07:21:53 +0000 (+0200) Subject: Reduce sizeof isc_sockaddr from 152 to 48 bytes X-Git-Tag: v9.19.22~50^2~3 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=2367b6a2e1770df42415a1813b036814a945843b;p=thirdparty%2Fbind9.git Reduce sizeof isc_sockaddr from 152 to 48 bytes 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. --- diff --git a/lib/dns/resconf.c b/lib/dns/resconf.c index db042798e8b..d57e0a9fa50 100644 --- a/lib/dns/resconf.c +++ b/lib/dns/resconf.c @@ -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); diff --git a/lib/isc/include/isc/sockaddr.h b/lib/isc/include/isc/sockaddr.h index e962a7a11cb..3ba52427a5f 100644 --- a/lib/isc/include/isc/sockaddr.h +++ b/lib/isc/include/isc/sockaddr.h @@ -29,10 +29,9 @@ */ 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;