From: Mark Andrews Date: Tue, 13 Feb 2024 00:42:44 +0000 (+1100) Subject: Add helper function isc_sockaddr_disabled X-Git-Tag: v9.20.0~16^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9be1873ef37a4f20e01dc2ad1e64112b7104d942;p=thirdparty%2Fbind9.git Add helper function isc_sockaddr_disabled --- diff --git a/lib/isc/include/isc/sockaddr.h b/lib/isc/include/isc/sockaddr.h index 3ba52427a5f..38f16a9e79c 100644 --- a/lib/isc/include/isc/sockaddr.h +++ b/lib/isc/include/isc/sockaddr.h @@ -241,4 +241,11 @@ isc_sockaddr_fromsockaddr(isc_sockaddr_t *isa, const struct sockaddr *sa); * Minimum size of array to pass to isc_sockaddr_format(). */ +bool +isc_sockaddr_disabled(const isc_sockaddr_t *sockaddr); +/*%< + * Report whether or not the address family of 'sockaddr' + * has been disabled. + */ + ISC_LANG_ENDDECLS diff --git a/lib/isc/sockaddr.c b/lib/isc/sockaddr.c index 263d652b381..7faa8578ad2 100644 --- a/lib/isc/sockaddr.c +++ b/lib/isc/sockaddr.c @@ -467,3 +467,15 @@ isc_sockaddr_fromsockaddr(isc_sockaddr_t *isa, const struct sockaddr *sa) { return (ISC_R_SUCCESS); } + +bool +isc_sockaddr_disabled(const isc_sockaddr_t *sockaddr) { + if ((sockaddr->type.sa.sa_family == AF_INET && + isc_net_probeipv4() == ISC_R_DISABLED) || + (sockaddr->type.sa.sa_family == AF_INET6 && + isc_net_probeipv6() == ISC_R_DISABLED)) + { + return (true); + } + return (false); +}