]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
in-addr-util: introduce in_addr_is_set() or friends
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 15:36:38 +0000 (00:36 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 18:48:06 +0000 (03:48 +0900)
src/basic/in-addr-util.c
src/basic/in-addr-util.h

index 641c5de7a37acbd0511a72368d360835a5c7dddc..6ee3a6ad63b30d8a9863604c9c061a7b495633a2 100644 (file)
@@ -24,6 +24,12 @@ bool in4_addr_is_null(const struct in_addr *a) {
         return a->s_addr == 0;
 }
 
+bool in6_addr_is_null(const struct in6_addr *a) {
+        assert(a);
+
+        return IN6_IS_ADDR_UNSPECIFIED(a);
+}
+
 int in_addr_is_null(int family, const union in_addr_union *u) {
         assert(u);
 
@@ -31,7 +37,7 @@ int in_addr_is_null(int family, const union in_addr_union *u) {
                 return in4_addr_is_null(&u->in);
 
         if (family == AF_INET6)
-                return IN6_IS_ADDR_UNSPECIFIED(&u->in6);
+                return in6_addr_is_null(&u->in6);
 
         return -EAFNOSUPPORT;
 }
index a5ce8258fd9dd3ce1a37f93b57de708c70087950..f7cdf0d9bc0c82d3605b4ec947d9565fe8fd2ce0 100644 (file)
@@ -21,7 +21,24 @@ struct in_addr_data {
 };
 
 bool in4_addr_is_null(const struct in_addr *a);
+static inline bool in4_addr_is_set(const struct in_addr *a) {
+        return !in4_addr_is_null(a);
+}
+bool in6_addr_is_null(const struct in6_addr *a);
+static inline bool in6_addr_is_set(const struct in6_addr *a) {
+        return !in6_addr_is_null(a);
+}
 int in_addr_is_null(int family, const union in_addr_union *u);
+static inline bool in_addr_is_set(int family, const union in_addr_union *u) {
+        return in_addr_is_null(family, u) == 0;
+}
+static inline int in_addr_data_is_null(const struct in_addr_data *a) {
+        assert(a);
+        return in_addr_is_null(a->family, &a->address);
+}
+static inline bool in_addr_data_is_set(const struct in_addr_data *a) {
+        return in_addr_data_is_null(a);
+}
 
 int in_addr_is_multicast(int family, const union in_addr_union *u);