]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add helper function isc_sockaddr_disabled
authorMark Andrews <marka@isc.org>
Tue, 13 Feb 2024 00:42:44 +0000 (11:42 +1100)
committerMark Andrews <marka@isc.org>
Mon, 3 Jun 2024 13:52:37 +0000 (13:52 +0000)
(cherry picked from commit 9be1873ef37a4f20e01dc2ad1e64112b7104d942)

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

index 9f3986b01ff62f6aa24f079a46f70f4990ac2b9b..97349a334324ba54335243e3522d2b961ebc5358 100644 (file)
@@ -245,4 +245,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
index 038e3ec7c42273e8a5f4148017d698ce5903b6a5..cf3e7612a9c4c404b4cbe544a98bcee7da308e89 100644 (file)
@@ -497,3 +497,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);
+}