summaryrefslogtreecommitdiff
path: root/src/basic/in-addr-util.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-11-18 13:13:28 +0100
committerLennart Poettering <lennart@poettering.net>2016-11-21 22:47:47 +0100
commitfdedbe2676b4f9142246c6ac1f42181174ab22f0 (patch)
treee3070961ce296d834e768f0140fb2a9e08153f4e /src/basic/in-addr-util.h
parent7192bb81bd99108287db82d6140d5329086b0da2 (diff)
basic: add explicit ipv4-specific in_addr classification calls
This adds in4_addr_is_localhost() and in4_addr_is_link_local() that only take an IPv4 "struct in_addr", to match in_addr_is_localhost() and in_addr_is_link_local() that that a "union in_addr_union". This matches the existing in4_addr_is_null() call that already exists. For IPv6 glibc already exports a set of macros, hence we don't add similar functions in6_addr_is_localhost(). We also drop in6_addr_is_null() as IN6_IS_ADDR_UNSPECIFIED() already provides that.
Diffstat (limited to 'src/basic/in-addr-util.h')
-rw-r--r--src/basic/in-addr-util.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/basic/in-addr-util.h b/src/basic/in-addr-util.h
index d60064aef8..64a812c322 100644
--- a/src/basic/in-addr-util.h
+++ b/src/basic/in-addr-util.h
@@ -37,11 +37,14 @@ struct in_addr_data {
};
bool in4_addr_is_null(const struct in_addr *a);
-bool in6_addr_is_null(const struct in6_addr *a);
-
int in_addr_is_null(int family, const union in_addr_union *u);
+
+bool in4_addr_is_link_local(const struct in_addr *a);
int in_addr_is_link_local(int family, const union in_addr_union *u);
+
+bool in4_addr_is_localhost(const struct in_addr *a);
int in_addr_is_localhost(int family, const union in_addr_union *u);
+
int in_addr_equal(int family, const union in_addr_union *a, const union in_addr_union *b);
int in_addr_prefix_intersect(int family, const union in_addr_union *a, unsigned aprefixlen, const union in_addr_union *b, unsigned bprefixlen);
int in_addr_prefix_next(int family, union in_addr_union *u, unsigned prefixlen);