]> 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 08:34:31 +0000 (18:34 +1000)
lib/isc/include/isc/sockaddr.h
lib/isc/sockaddr.c

index 3ba52427a5f451147062fcda9b7c95222f989960..38f16a9e79ca5fb27fa7993fa837e0fa8c584fd7 100644 (file)
@@ -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
index 263d652b3815396362708506275b25899129016b..7faa8578ad23f1c4a8bc30dfcb75c1ad6e02a906 100644 (file)
@@ -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);
+}