summaryrefslogtreecommitdiff
path: root/lib/isc/netaddr.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/isc/netaddr.c')
-rw-r--r--lib/isc/netaddr.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/isc/netaddr.c b/lib/isc/netaddr.c
index dcbfba42eae88..2178c7a2a7b5b 100644
--- a/lib/isc/netaddr.c
+++ b/lib/isc/netaddr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2010-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2010-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -419,6 +419,22 @@ isc_netaddr_issitelocal(isc_netaddr_t *na) {
}
}
+#ifndef IN_ZERONET
+#define IN_ZERONET(x) (((x) & htonl(0xff000000U)) == 0)
+#endif
+
+isc_boolean_t
+isc_netaddr_isnetzero(isc_netaddr_t *na) {
+ switch (na->family) {
+ case AF_INET:
+ return (ISC_TF(IN_ZERONET(na->type.in.s_addr)));
+ case AF_INET6:
+ return (ISC_FALSE);
+ default:
+ return (ISC_FALSE);
+ }
+}
+
void
isc_netaddr_fromv4mapped(isc_netaddr_t *t, const isc_netaddr_t *s) {
isc_netaddr_t *src;