]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: use in_addr_is_set() or friends
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 16:29:43 +0000 (01:29 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 18:48:07 +0000 (03:48 +0900)
31 files changed:
src/libsystemd-network/icmp6-util.c
src/libsystemd-network/icmp6-util.h
src/libsystemd-network/ndisc-router.c
src/libsystemd-network/sd-dhcp6-client.c
src/libsystemd-network/sd-ipv4ll.c
src/libsystemd-network/sd-radv.c
src/network/generator/network-generator.c
src/network/netdev/geneve.c
src/network/netdev/l2tp-tunnel.c
src/network/netdev/tunnel.c
src/network/netdev/vxlan.c
src/network/networkctl.c
src/network/networkd-address.c
src/network/networkd-dhcp-server.c
src/network/networkd-dhcp4.c
src/network/networkd-dhcp6.c
src/network/networkd-fdb.c
src/network/networkd-link.c
src/network/networkd-ndisc.c
src/network/networkd-nexthop.c
src/network/networkd-radv.c
src/network/networkd-route.c
src/network/networkd-routing-policy-rule.c
src/network/test-network.c
src/nspawn/nspawn-expose-ports.c
src/nss-myhostname/nss-myhostname.c
src/nss-resolve/nss-resolve.c
src/resolve/resolved-dns-rr.c
src/resolve/resolved-dns-scope.c
src/resolve/resolved-etc-hosts.c
src/shared/resolve-util.c

index 4af012534ab324c8371261aae67a95b6de48a935..d079ad40e992d14694c94417b6d6089e6fde16d9 100644 (file)
@@ -145,8 +145,8 @@ int icmp6_send_router_solicitation(int s, const struct ether_addr *ether_addr) {
         return 0;
 }
 
-int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst,
-                  triple_timestamp *timestamp) {
+int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *ret_dst,
+                  triple_timestamp *ret_timestamp) {
 
         CMSG_BUFFER_TYPE(CMSG_SPACE(sizeof(int)) + /* ttl */
                          CMSG_SPACE(sizeof(struct timeval))) control;
@@ -161,6 +161,8 @@ int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst,
                 .msg_controllen = sizeof(control),
         };
         struct cmsghdr *cmsg;
+        struct in6_addr addr = {};
+        triple_timestamp t;
         ssize_t len;
 
         iov = IOVEC_MAKE(buffer, size);
@@ -175,8 +177,8 @@ int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst,
         if (msg.msg_namelen == sizeof(struct sockaddr_in6) &&
             sa.in6.sin6_family == AF_INET6)  {
 
-                *dst = sa.in6.sin6_addr;
-                if (in_addr_is_link_local(AF_INET6, (union in_addr_union*) dst) <= 0)
+                addr = sa.in6.sin6_addr;
+                if (!in6_addr_is_link_local(&addr))
                         return -EADDRNOTAVAIL;
 
         } else if (msg.msg_namelen > 0)
@@ -200,11 +202,13 @@ int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst,
                 if (cmsg->cmsg_level == SOL_SOCKET &&
                     cmsg->cmsg_type == SO_TIMESTAMP &&
                     cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval)))
-                        triple_timestamp_from_realtime(timestamp, timeval_load((struct timeval*) CMSG_DATA(cmsg)));
+                        triple_timestamp_from_realtime(&t, timeval_load((struct timeval*) CMSG_DATA(cmsg)));
         }
 
-        if (!triple_timestamp_is_set(timestamp))
-                triple_timestamp_get(timestamp);
+        if (!triple_timestamp_is_set(&t))
+                triple_timestamp_get(&t);
 
+        *ret_dst = addr;
+        *ret_timestamp = t;
         return 0;
 }
index 50d21b5b593355ed213c67e4cf75456f7dcbece4..f7ad26b5e61995486aa82e21ba73277f00d02c8a 100644 (file)
@@ -20,5 +20,5 @@
 int icmp6_bind_router_solicitation(int ifindex);
 int icmp6_bind_router_advertisement(int ifindex);
 int icmp6_send_router_solicitation(int s, const struct ether_addr *ether_addr);
-int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *dst,
-                  triple_timestamp *timestamp);
+int icmp6_receive(int fd, void *buffer, size_t size, struct in6_addr *ret_dst,
+                  triple_timestamp *ret_timestamp);
index 3cb71dbdac9a3c07d0d5a900aba7e04acdf56e47..c88293a9239cf5b3d05b8cf3973f2e5c70e94c4b 100644 (file)
@@ -56,7 +56,7 @@ _public_ int sd_ndisc_router_get_address(sd_ndisc_router *rt, struct in6_addr *r
         assert_return(rt, -EINVAL);
         assert_return(ret_addr, -EINVAL);
 
-        if (IN6_IS_ADDR_UNSPECIFIED(&rt->address))
+        if (in6_addr_is_null(&rt->address))
                 return -ENODATA;
 
         *ret_addr = rt->address;
index f362770c4fe5741bca54e0cfef49967f82690a7e..2184073f19dfce420b77dc5fa48fff287f94e16e 100644 (file)
@@ -171,7 +171,7 @@ int sd_dhcp6_client_set_local_address(
 
         assert_return(client, -EINVAL);
         assert_return(local_address, -EINVAL);
-        assert_return(in_addr_is_link_local(AF_INET6, (const union in_addr_union *) local_address) > 0, -EINVAL);
+        assert_return(in6_addr_is_link_local(local_address) > 0, -EINVAL);
 
         assert_return(IN_SET(client->state, DHCP6_STATE_STOPPED), -EBUSY);
 
@@ -1693,7 +1693,7 @@ int sd_dhcp6_client_start(sd_dhcp6_client *client) {
         assert_return(client, -EINVAL);
         assert_return(client->event, -EINVAL);
         assert_return(client->ifindex > 0, -EINVAL);
-        assert_return(in_addr_is_link_local(AF_INET6, (const union in_addr_union *) &client->local_address) > 0, -EINVAL);
+        assert_return(in6_addr_is_link_local(&client->local_address) > 0, -EINVAL);
 
         if (!IN_SET(client->state, DHCP6_STATE_STOPPED))
                 return -EBUSY;
index 3af7d89bf076f3627f8aca04217f1056948c8d68..a83c9b06de50d7557286449e58b95cc287866183 100644 (file)
@@ -186,7 +186,7 @@ int sd_ipv4ll_is_running(sd_ipv4ll *ll) {
 static bool ipv4ll_address_is_valid(const struct in_addr *address) {
         assert(address);
 
-        if (!in_addr_is_link_local(AF_INET, (const union in_addr_union *) address))
+        if (!in4_addr_is_link_local(address))
                 return false;
 
         return !IN_SET(be32toh(address->s_addr) & 0x0000FF00U, 0x0000U, 0xFF00U);
index 8beb845d79ee1e1a42cd049474e9389204cf5cd5..b34263568e109fd380dbdde0cd025a1234c5342a 100644 (file)
@@ -167,7 +167,7 @@ static int radv_send(sd_radv *ra, const struct in6_addr *dst, uint32_t router_li
         if (r < 0)
                 return r;
 
-        if (dst && !IN6_IS_ADDR_UNSPECIFIED(dst))
+        if (dst && in6_addr_is_set(dst))
                 dst_addr.sin6_addr = *dst;
 
         adv.nd_ra_type = ND_ROUTER_ADVERT;
@@ -536,7 +536,7 @@ _public_ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p, int dynamic) {
                 return -EINVAL;
 
         /* Refuse prefixes that don't have a prefix set */
-        if (IN6_IS_ADDR_UNSPECIFIED(&p->opt.in6_addr))
+        if (in6_addr_is_null(&p->opt.in6_addr))
                 return -ENOEXEC;
 
         LIST_FOREACH(prefix, cur, ra->prefixes) {
@@ -631,9 +631,7 @@ _public_ sd_radv_prefix *sd_radv_remove_prefix(sd_radv *ra,
                 if (prefixlen != cur->opt.prefixlen)
                         continue;
 
-                if (!in_addr_equal(AF_INET6,
-                                   (union in_addr_union *)prefix,
-                                   (union in_addr_union *)&cur->opt.in6_addr))
+                if (!in6_addr_equal(prefix, &cur->opt.in6_addr))
                         continue;
 
                 LIST_REMOVE(prefix, ra->prefixes, cur);
index 492bb68e320bbab91a3553da4f23ff10ba629d80..ae673ddf5b5ef0e2ce3d0eae4dd645ee67d6191f 100644 (file)
@@ -360,7 +360,7 @@ static int network_set_address(Context *context, const char *ifname, int family,
                                union in_addr_union *addr, union in_addr_union *peer) {
         Network *network;
 
-        if (in_addr_is_null(family, addr) != 0)
+        if (!in_addr_is_set(family, addr))
                 return 0;
 
         network = network_get(context, ifname);
@@ -375,7 +375,7 @@ static int network_set_route(Context *context, const char *ifname, int family, u
         Network *network;
         int r;
 
-        if (in_addr_is_null(family, gateway) != 0)
+        if (!in_addr_is_set(family, gateway))
                 return 0;
 
         network = network_get(context, ifname);
@@ -1000,7 +1000,7 @@ static int address_dump(Address *address, FILE *f) {
         if (r < 0)
                 return r;
 
-        if (in_addr_is_null(address->family, &address->peer) == 0) {
+        if (in_addr_is_set(address->family, &address->peer)) {
                 r = in_addr_to_string(address->family, &address->peer, &peer);
                 if (r < 0)
                         return r;
@@ -1021,7 +1021,7 @@ static int route_dump(Route *route, FILE *f) {
         _cleanup_free_ char *dest = NULL, *gateway = NULL;
         int r;
 
-        if (in_addr_is_null(route->family, &route->dest) == 0) {
+        if (in_addr_is_set(route->family, &route->dest)) {
                 r = in_addr_prefix_to_string(route->family, &route->dest, route->prefixlen, &dest);
                 if (r < 0)
                         return r;
index edf92ec93c4862bfe82d15ecd237cb69f5048ec4..fd0b5119e7f3ac79acb139b9895de72ea0ae96e7 100644 (file)
@@ -90,7 +90,7 @@ static int netdev_geneve_create(NetDev *netdev) {
                         return log_netdev_error_errno(netdev, r, "Could not append IFLA_GENEVE_ID attribute: %m");
         }
 
-        if (in_addr_is_null(v->remote_family, &v->remote) == 0) {
+        if (in_addr_is_set(v->remote_family, &v->remote)) {
                 if (v->remote_family == AF_INET)
                         r = sd_netlink_message_append_in_addr(m, IFLA_GENEVE_REMOTE, &v->remote.in);
                 else
index a909b1576460b84fa62410296231266b587d403a..32ec0245581b8b1a3743c96e981372757373a896 100644 (file)
@@ -252,7 +252,7 @@ static int l2tp_acquire_local_address_one(L2tpTunnel *t, Address *a, union in_ad
         if (a->family != t->family)
                 return -EINVAL;
 
-        if (in_addr_is_null(a->family, &a->in_addr_peer) <= 0)
+        if (in_addr_is_set(a->family, &a->in_addr_peer))
                 return -EINVAL;
 
         if (t->local_address_type == NETDEV_L2TP_LOCAL_ADDRESS_STATIC &&
@@ -275,7 +275,7 @@ static int l2tp_acquire_local_address(L2tpTunnel *t, Link *link, union in_addr_u
         assert(ret);
         assert(IN_SET(t->family, AF_INET, AF_INET6));
 
-        if (!in_addr_is_null(t->family, &t->local)) {
+        if (in_addr_is_set(t->family, &t->local)) {
                 /* local address is explicitly specified. */
                 *ret = t->local;
                 return 0;
@@ -435,7 +435,7 @@ int config_parse_l2tp_tunnel_address(
                         addr_type = l2tp_local_address_type_from_string(rvalue);
 
                 if (addr_type >= 0) {
-                        if (in_addr_is_null(t->family, &t->remote) != 0)
+                        if (!in_addr_is_set(t->family, &t->remote))
                                 /* If Remote= is not specified yet, then also clear family. */
                                 t->family = AF_UNSPEC;
 
@@ -682,7 +682,7 @@ static int netdev_l2tp_tunnel_verify(NetDev *netdev, const char *filename) {
                                               "%s: L2TP tunnel with invalid address family configured. Ignoring",
                                               filename);
 
-        if (in_addr_is_null(t->family, &t->remote))
+        if (!in_addr_is_set(t->family, &t->remote))
                 return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
                                               "%s: L2TP tunnel without a remote address configured. Ignoring",
                                               filename);
index fdaec488a2196c2a8cfc9a022468d04cd900f336..2fab269397f5ab121ef6fd7b2b425a9da63cb50a 100644 (file)
@@ -468,7 +468,7 @@ static int netdev_tunnel_verify(NetDev *netdev, const char *filename) {
                                               "vti/ipip/sit/gre tunnel without a local/remote IPv4 address configured in %s. Ignoring", filename);
 
         if (IN_SET(netdev->kind, NETDEV_KIND_GRETAP, NETDEV_KIND_ERSPAN) &&
-            (t->family != AF_INET || in_addr_is_null(t->family, &t->remote)))
+            (t->family != AF_INET || !in_addr_is_set(t->family, &t->remote)))
                 return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
                                               "gretap/erspan tunnel without a remote IPv4 address configured in %s. Ignoring", filename);
 
@@ -478,7 +478,7 @@ static int netdev_tunnel_verify(NetDev *netdev, const char *filename) {
                                               "vti6/ip6tnl/ip6gre tunnel without a local/remote IPv6 address configured in %s. Ignoring", filename);
 
         if (netdev->kind == NETDEV_KIND_IP6GRETAP &&
-            (t->family != AF_INET6 || in_addr_is_null(t->family, &t->remote)))
+            (t->family != AF_INET6 || !in_addr_is_set(t->family, &t->remote)))
                 return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
                                               "ip6gretap tunnel without a remote IPv6 address configured in %s. Ignoring", filename);
 
@@ -530,11 +530,9 @@ int config_parse_tunnel_address(const char *unit,
                 *addr = IN_ADDR_NULL;
 
                 /* As a special case, if both the local and remote addresses are
-                 * unspecified, also clear the address family.
-                 */
-                if (t->family != AF_UNSPEC &&
-                    in_addr_is_null(t->family, &t->local) != 0 &&
-                    in_addr_is_null(t->family, &t->remote) != 0)
+                 * unspecified, also clear the address family. */
+                if (!in_addr_is_set(t->family, &t->local) &&
+                    !in_addr_is_set(t->family, &t->remote))
                         t->family = AF_UNSPEC;
                 return 0;
         }
index 6748f67f8f5aea2e90b02f766774ffe79195a7f8..52d8b3736ccd43afdcc3e06df6d2fa456e5aff0e 100644 (file)
@@ -37,14 +37,14 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli
                         return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_ID attribute: %m");
         }
 
-        if (in_addr_is_null(v->group_family, &v->group) == 0) {
+        if (in_addr_is_set(v->group_family, &v->group)) {
                 if (v->group_family == AF_INET)
                         r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_GROUP, &v->group.in);
                 else
                         r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_GROUP6, &v->group.in6);
                 if (r < 0)
                         return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GROUP attribute: %m");
-        } else if (in_addr_is_null(v->remote_family, &v->remote) == 0) {
+        } else if (in_addr_is_set(v->remote_family, &v->remote)) {
                 if (v->remote_family == AF_INET)
                         r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_GROUP, &v->remote.in);
                 else
@@ -53,7 +53,7 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli
                         return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GROUP attribute: %m");
         }
 
-        if (in_addr_is_null(v->local_family, &v->local) == 0) {
+        if (in_addr_is_set(v->local_family, &v->local)) {
                 if (v->local_family == AF_INET)
                         r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_LOCAL, &v->local.in);
                 else
@@ -354,7 +354,7 @@ static int netdev_vxlan_verify(NetDev *netdev, const char *filename) {
         if (!v->dest_port && v->generic_protocol_extension)
                 v->dest_port = 4790;
 
-        if (in_addr_is_null(v->group_family, &v->group) == 0 && in_addr_is_null(v->remote_family, &v->remote) == 0)
+        if (in_addr_is_set(v->group_family, &v->group) && in_addr_is_set(v->remote_family, &v->remote))
                 return log_netdev_warning_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
                                                 "%s: VXLAN both 'Group=' and 'Remote=' cannot be specified. Ignoring.",
                                                 filename);
index 1dd3438abd28ded5d2be4b330c532dc2fc8e15fa..763d5ef37da99a21f6a3b8ca6fc74a21879e005d 100644 (file)
@@ -1787,7 +1787,7 @@ static int link_status_one(
                 if (r < 0)
                         return table_log_add_error(r);
         } else if (STRPTR_IN_SET(info->netdev_kind, "ipip", "sit", "gre", "gretap", "erspan", "vti")) {
-                if (!in_addr_is_null(AF_INET, &info->local)) {
+                if (in_addr_is_set(AF_INET, &info->local)) {
                         r = table_add_many(table,
                                            TABLE_EMPTY,
                                            TABLE_STRING, "Local:",
@@ -1796,7 +1796,7 @@ static int link_status_one(
                                 return table_log_add_error(r);
                 }
 
-                if (!in_addr_is_null(AF_INET, &info->remote)) {
+                if (in_addr_is_set(AF_INET, &info->remote)) {
                         r = table_add_many(table,
                                            TABLE_EMPTY,
                                            TABLE_STRING, "Remote:",
@@ -1805,7 +1805,7 @@ static int link_status_one(
                                 return table_log_add_error(r);
                 }
         } else if (STRPTR_IN_SET(info->netdev_kind, "ip6gre", "ip6gretap", "ip6erspan", "vti6")) {
-                if (!in_addr_is_null(AF_INET6, &info->local)) {
+                if (in_addr_is_set(AF_INET6, &info->local)) {
                         r = table_add_many(table,
                                            TABLE_EMPTY,
                                            TABLE_STRING, "Local:",
@@ -1814,7 +1814,7 @@ static int link_status_one(
                                 return table_log_add_error(r);
                 }
 
-                if (!in_addr_is_null(AF_INET6, &info->remote)) {
+                if (in_addr_is_set(AF_INET6, &info->remote)) {
                         r = table_add_many(table,
                                            TABLE_EMPTY,
                                            TABLE_STRING, "Remote:",
@@ -1830,14 +1830,14 @@ static int link_status_one(
                 if (r < 0)
                         return table_log_add_error(r);
 
-                if (info->has_tunnel_ipv4 && !in_addr_is_null(AF_INET, &info->remote)) {
+                if (info->has_tunnel_ipv4 && in_addr_is_set(AF_INET, &info->remote)) {
                         r = table_add_many(table,
                                            TABLE_EMPTY,
                                            TABLE_STRING, "Remote:",
                                            TABLE_IN_ADDR, &info->remote);
                         if (r < 0)
                                 return table_log_add_error(r);
-                } else if (!in_addr_is_null(AF_INET6, &info->remote)) {
+                } else if (in_addr_is_set(AF_INET6, &info->remote)) {
                         r = table_add_many(table,
                                            TABLE_EMPTY,
                                            TABLE_STRING, "Remote:",
index d862e45e61c732a4dbd2d1b109f98bbee6f351c3..dd7c28ec6e74a0235097500ed71f7697ac92874e 100644 (file)
@@ -130,7 +130,8 @@ Address *address_free(Address *address) {
                         if (n->address == address)
                                 free(set_remove(address->link->ndisc_addresses, n));
 
-                if (in_addr_equal(AF_INET6, &address->in_addr, (const union in_addr_union *) &address->link->ipv6ll_address))
+                if (address->family == AF_INET6 &&
+                    in6_addr_equal(&address->in_addr.in6, &address->link->ipv6ll_address))
                         memzero(&address->link->ipv6ll_address, sizeof(struct in6_addr));
         }
 
@@ -147,7 +148,9 @@ static bool address_may_have_broadcast(const Address *a) {
         /* A /31 or /32 IPv4 address does not have a broadcast address.
          * See https://tools.ietf.org/html/rfc3021 */
 
-        return a->family == AF_INET && in4_addr_is_null(&a->in_addr_peer.in) && a->prefixlen <= 30;
+        return a->family == AF_INET &&
+                in_addr_is_null(AF_INET, &a->in_addr_peer) &&
+                a->prefixlen <= 30;
 }
 
 static uint32_t address_prefix(const Address *a) {
@@ -397,7 +400,7 @@ static int address_update(Address *address, const Address *src) {
 
                 if (address->family == AF_INET6 &&
                     in_addr_is_link_local(AF_INET6, &address->in_addr) > 0 &&
-                    IN6_IS_ADDR_UNSPECIFIED(&address->link->ipv6ll_address) > 0) {
+                    in6_addr_is_null(&address->link->ipv6ll_address)) {
 
                         r = link_ipv6ll_gained(address->link, &address->in_addr.in6);
                         if (r < 0)
@@ -487,7 +490,7 @@ static void log_address_debug(const Address *address, const char *str, const Lin
                 bool has_peer;
 
                 (void) in_addr_to_string(address->family, &address->in_addr, &addr);
-                has_peer = in_addr_is_null(address->family, &address->in_addr_peer) == 0;
+                has_peer = in_addr_is_set(address->family, &address->in_addr_peer);
                 if (has_peer)
                         (void) in_addr_to_string(address->family, &address->in_addr_peer, &peer);
 
@@ -788,10 +791,7 @@ static int address_acquire(Link *link, const Address *original, Address **ret) {
         assert(ret);
 
         /* Something useful was configured? just use it */
-        r = in_addr_is_null(original->family, &original->in_addr);
-        if (r < 0)
-                return r;
-        if (r == 0) {
+        if (in_addr_is_set(original->family, &original->in_addr)) {
                 *ret = NULL;
                 return 0;
         }
@@ -891,7 +891,7 @@ int address_configure(
         if (r < 0)
                 return log_link_error_errno(link, r, "Could not set scope: %m");
 
-        if (in_addr_is_null(address->family, &address->in_addr_peer) == 0) {
+        if (in_addr_is_set(address->family, &address->in_addr_peer)) {
                 r = netlink_message_append_in_addr_union(req, IFA_ADDRESS, address->family, &address->in_addr_peer);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not append IFA_ADDRESS attribute: %m");
index 9a9f1eabe53c7fffbeef09dcc9273584fe1f9142..2c533c6f8dd535c4529cde8e69f267010f349f40 100644 (file)
@@ -47,7 +47,7 @@ static Address* link_find_dhcp_server_address(Link *link) {
         /* The first statically configured address if there is any */
         ORDERED_HASHMAP_FOREACH(address, link->network->addresses_by_section)
                 if (address->family == AF_INET &&
-                    !in_addr_is_null(address->family, &address->in_addr))
+                    in_addr_is_set(address->family, &address->in_addr))
                         return address;
 
         /* If that didn't work, find a suitable address we got from the pool */
index 1559e0cfd850aa34b50bce96ae6330e195f047c2..b0c783c774ac7b088461aae0ac1d18ac6b5d6dee 100644 (file)
@@ -122,7 +122,7 @@ static int route_scope_from_address(const Route *route, const struct in_addr *se
         assert(self_addr);
 
         if (in4_addr_is_localhost(&route->dst.in) ||
-            (!in4_addr_is_null(self_addr) && in4_addr_equal(&route->dst.in, self_addr)))
+            (in4_addr_is_set(self_addr) && in4_addr_equal(&route->dst.in, self_addr)))
                 return RT_SCOPE_HOST;
         else if (in4_addr_is_null(&route->gw.in))
                 return RT_SCOPE_LINK;
@@ -835,7 +835,7 @@ static int dhcp4_update_address(Link *link, bool announce) {
                 if (r < 0 && r != -ENODATA)
                         return log_link_error_errno(link, r, "DHCP error: Could not get gateway: %m");
 
-                if (r > 0 && !in4_addr_is_null(&router[0]))
+                if (r > 0 && in4_addr_is_set(&router[0]))
                         log_struct(LOG_INFO,
                                    LOG_LINK_INTERFACE(link),
                                    LOG_LINK_MESSAGE(link, "DHCPv4 address "IPV4_ADDRESS_FMT_STR"/%u via "IPV4_ADDRESS_FMT_STR,
index eb9fabb2aeb7476ec588db22422fe3760ae01c26..bb37a0bf7153e6a6aa7508b43edc80059d8a7feb 100644 (file)
@@ -379,7 +379,7 @@ static int dhcp6_set_pd_address(
 
         address->in_addr = *prefix;
 
-        if (!in_addr_is_null(AF_INET6, &link->network->dhcp6_pd_token))
+        if (in_addr_is_set(AF_INET6, &link->network->dhcp6_pd_token))
                 memcpy(address->in_addr.in6.s6_addr + 8, link->network->dhcp6_pd_token.in6.s6_addr + 8, 8);
         else {
                 r = generate_ipv6_eui_64_address(link, &address->in_addr.in6);
@@ -1235,7 +1235,7 @@ int dhcp6_request_address(Link *link, int ir) {
         assert(link);
         assert(link->dhcp6_client);
         assert(link->network);
-        assert(in_addr_is_link_local(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address) > 0);
+        assert(in6_addr_is_link_local(&link->ipv6ll_address));
 
         r = sd_dhcp6_client_is_running(link->dhcp6_client);
         if (r < 0)
index 4cd430e8aefd2a53f8d2207138c5cac9d45b5a7b..e4e727038f5a628fb899fdadcc8ff91635fc99e4 100644 (file)
@@ -142,7 +142,7 @@ static int fdb_entry_configure(Link *link, FdbEntry *fdb_entry) {
                         return log_link_error_errno(link, r, "Could not append NDA_VLAN attribute: %m");
         }
 
-        if (!in_addr_is_null(fdb_entry->family, &fdb_entry->destination_addr)) {
+        if (in_addr_is_set(fdb_entry->family, &fdb_entry->destination_addr)) {
                 r = netlink_message_append_in_addr_union(req, NDA_DST, fdb_entry->family, &fdb_entry->destination_addr);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not append NDA_DST attribute: %m");
index aacfc31c5296d444db315a6309ee508f6ebb1629..b3cf43f4a83dc9c30424a78620eb0288dc058b94 100644 (file)
@@ -766,9 +766,8 @@ void link_check_ready(Link *link) {
                 bool has_ndisc_address = false;
                 NDiscAddress *n;
 
-                if (link_ipv6ll_enabled(link) &&
-                    in_addr_is_null(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address))
-                        return (void) log_link_debug(link, "%s(): IPv6LL is not configured.", __func__);
+                if (link_ipv6ll_enabled(link) && !in6_addr_is_set(&link->ipv6ll_address))
+                        return (void) log_link_debug(link, "%s(): IPv6LL is not configured yet.", __func__);
 
                 SET_FOREACH(n, link->ndisc_addresses)
                         if (!n->marked) {
@@ -1156,7 +1155,7 @@ static int link_acquire_ipv6_conf(Link *link) {
 
         if (link->radv) {
                 assert(link->radv);
-                assert(in_addr_is_link_local(AF_INET6, (const union in_addr_union*)&link->ipv6ll_address) > 0);
+                assert(in6_addr_is_link_local(&link->ipv6ll_address));
 
                 log_link_debug(link, "Starting IPv6 Router Advertisements");
 
@@ -1173,7 +1172,7 @@ static int link_acquire_ipv6_conf(Link *link) {
                                                DHCP6_CLIENT_START_MODE_INFORMATION_REQUEST,
                                                DHCP6_CLIENT_START_MODE_SOLICIT)) {
                 assert(link->dhcp6_client);
-                assert(in_addr_is_link_local(AF_INET6, (const union in_addr_union*)&link->ipv6ll_address) > 0);
+                assert(in6_addr_is_link_local(&link->ipv6ll_address));
 
                 r = dhcp6_request_address(link, link->network->dhcp6_without_ra == DHCP6_CLIENT_START_MODE_INFORMATION_REQUEST);
                 if (r < 0 && r != -EBUSY)
@@ -1223,7 +1222,7 @@ static int link_acquire_conf(Link *link) {
         if (r < 0)
                 return r;
 
-        if (!in_addr_is_null(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address)) {
+        if (in6_addr_is_set(&link->ipv6ll_address)) {
                 r = link_acquire_ipv6_conf(link);
                 if (r < 0)
                         return r;
index 4b9485b6b270cd29df0973e2e8b241af2e337082..4f71396fbb76bb50ea27f9e82a6244732ef40f5c 100644 (file)
@@ -95,7 +95,7 @@ static int ndisc_address_callback(Address *address) {
                         break;
                 }
 
-        if (IN6_IS_ADDR_UNSPECIFIED(&router)) {
+        if (in6_addr_is_null(&router)) {
                 _cleanup_free_ char *buf = NULL;
 
                 (void) in_addr_to_string(address->family, &address->in_addr, &buf);
@@ -649,12 +649,11 @@ static int ndisc_router_generate_addresses(Link *link, struct in6_addr *address,
                 _cleanup_free_ struct in6_addr *new_address = NULL;
 
                 if (j->address_generation_type == IPV6_TOKEN_ADDRESS_GENERATION_PREFIXSTABLE
-                    && (IN6_IS_ADDR_UNSPECIFIED(&j->prefix) || IN6_ARE_ADDR_EQUAL(&j->prefix, address))) {
+                    && (in6_addr_is_null(&j->prefix) || IN6_ARE_ADDR_EQUAL(&j->prefix, address))) {
                         /* While this loop uses dad_counter and a retry limit as specified in RFC 7217, the loop
-                           does not actually attempt Duplicate Address Detection; the counter will be incremented
-                           only when the address generation algorithm produces an invalid address, and the loop
-                           may exit with an address which ends up being unusable due to duplication on the link.
-                        */
+                         * does not actually attempt Duplicate Address Detection; the counter will be incremented
+                         * only when the address generation algorithm produces an invalid address, and the loop
+                         * may exit with an address which ends up being unusable due to duplication on the link. */
                         for (; j->dad_counter < DAD_CONFLICTS_IDGEN_RETRIES_RFC7217; j->dad_counter++) {
                                 r = make_stableprivate_address(link, address, prefixlen, j->dad_counter, &new_address);
                                 if (r < 0)
index 7a5a648148208fab8f7089e79acdf68e745d8f27..76f6ce6d70c1fb8459d6f8e52e15f388a5b4a8ec 100644 (file)
@@ -279,7 +279,7 @@ static int nexthop_configure(NextHop *nexthop, Link *link) {
         if (r < 0)
                 return log_link_error_errno(link, r, "Could not append NHA_OIF attribute: %m");
 
-        if (in_addr_is_null(nexthop->family, &nexthop->gw) == 0) {
+        if (in_addr_is_set(nexthop->family, &nexthop->gw)) {
                 r = netlink_message_append_in_addr_union(req, NHA_GATEWAY, nexthop->family, &nexthop->gw);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not append NHA_GATEWAY attribute: %m");
@@ -591,7 +591,7 @@ int config_parse_nexthop_family(
                 return log_oom();
 
         if (isempty(rvalue) &&
-            in_addr_is_null(n->family, &n->gw) != 0) {
+            !in_addr_is_set(n->family, &n->gw)) {
                 /* Accept an empty string only when Gateway= is null or not specified. */
                 n->family = AF_UNSPEC;
                 TAKE_PTR(n);
@@ -605,7 +605,7 @@ int config_parse_nexthop_family(
                 return 0;
         }
 
-        if (in_addr_is_null(n->family, &n->gw) == 0 &&
+        if (in_addr_is_set(n->family, &n->gw) &&
             ((a == ADDRESS_FAMILY_IPV4 && n->family == AF_INET6) ||
              (a == ADDRESS_FAMILY_IPV6 && n->family == AF_INET))) {
                 log_syntax(unit, LOG_WARNING, filename, line, 0,
index 39246498e4c21045478e92cec8f8dddbc2a8532f..8d8c21c0d8d6634bca283f1d3d78c116f716273b 100644 (file)
@@ -525,8 +525,8 @@ static int radv_set_dns(Link *link, Link *uplink) {
 
                 p = dns;
                 for (size_t i = 0; i < link->network->n_router_dns; i++)
-                        if (IN6_IS_ADDR_UNSPECIFIED(&link->network->router_dns[i])) {
-                                if (!IN6_IS_ADDR_UNSPECIFIED(&link->ipv6ll_address))
+                        if (in6_addr_is_null(&link->network->router_dns[i])) {
+                                if (in6_addr_is_set(&link->ipv6ll_address))
                                         *(p++) = link->ipv6ll_address;
                         } else
                                 *(p++) = link->network->router_dns[i];
index fca6c032db791c40c50a511308f5a937161fe0ef..79ea9f2cdff3c823e79a747f16fb72b6e868fbe0 100644 (file)
@@ -617,15 +617,15 @@ static void log_route_debug(const Route *route, const char *str, const Link *lin
                 _cleanup_free_ char *dst = NULL, *dst_prefixlen = NULL, *src = NULL, *gw = NULL,
                         *prefsrc = NULL, *table = NULL, *scope = NULL, *proto = NULL;
 
-                if (!in_addr_is_null(route->family, &route->dst)) {
+                if (in_addr_is_set(route->family, &route->dst)) {
                         (void) in_addr_to_string(route->family, &route->dst, &dst);
                         (void) asprintf(&dst_prefixlen, "/%u", route->dst_prefixlen);
                 }
-                if (!in_addr_is_null(route->family, &route->src))
+                if (in_addr_is_set(route->family, &route->src))
                         (void) in_addr_to_string(route->family, &route->src, &src);
-                if (in_addr_is_null(route->gw_family, &route->gw) == 0)
+                if (in_addr_is_set(route->gw_family, &route->gw))
                         (void) in_addr_to_string(route->gw_family, &route->gw, &gw);
-                if (!in_addr_is_null(route->family, &route->prefsrc))
+                if (in_addr_is_set(route->family, &route->prefsrc))
                         (void) in_addr_to_string(route->family, &route->prefsrc, &prefsrc);
                 (void) route_scope_to_string_alloc(route->scope, &scope);
                 (void) manager_get_route_table_to_string(m, route->table, &table);
@@ -648,7 +648,7 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req
 
         /* link may be NULL */
 
-        if (in_addr_is_null(route->gw_family, &route->gw) == 0) {
+        if (in_addr_is_set(route->gw_family, &route->gw)) {
                 if (route->gw_family == route->family) {
                         r = netlink_message_append_in_addr_union(req, RTA_GATEWAY, route->gw_family, &route->gw);
                         if (r < 0)
@@ -685,7 +685,7 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *req
                         return log_link_error_errno(link, r, "Could not set source prefix length: %m");
         }
 
-        if (in_addr_is_null(route->family, &route->prefsrc) == 0) {
+        if (in_addr_is_set(route->family, &route->prefsrc)) {
                 r = netlink_message_append_in_addr_union(req, RTA_PREFSRC, route->family, &route->prefsrc);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not append RTA_PREFSRC attribute: %m");
@@ -1260,7 +1260,7 @@ int link_set_routes(Link *link) {
                         if (rt->gateway_from_dhcp_or_ra)
                                 continue;
 
-                        if ((in_addr_is_null(rt->gw_family, &rt->gw) != 0 && ordered_set_isempty(rt->multipath_routes)) != (phase == PHASE_NON_GATEWAY))
+                        if ((!in_addr_is_set(rt->gw_family, &rt->gw) && ordered_set_isempty(rt->multipath_routes)) != (phase == PHASE_NON_GATEWAY))
                                 continue;
 
                         r = route_configure(rt, link, route_handler, NULL);
@@ -2565,7 +2565,7 @@ static int route_section_verify(Route *route, Network *network) {
                 route->priority = IP6_RT_PRIO_USER;
 
         if (ordered_hashmap_isempty(network->addresses_by_section) &&
-            in_addr_is_null(route->gw_family, &route->gw) == 0 &&
+            in_addr_is_set(route->gw_family, &route->gw) &&
             route->gateway_onlink < 0) {
                 log_warning("%s: Gateway= without static address configured. "
                             "Enabling GatewayOnLink= option.",
index ed966f3c1731a3535a09f9a744075fbbeb579c6e..3260fa89c755eb65aae5ed3dc9706a06479e525d 100644 (file)
@@ -420,7 +420,7 @@ static int routing_policy_rule_set_netlink_message(const RoutingPolicyRule *rule
 
         /* link may be NULL. */
 
-        if (in_addr_is_null(rule->family, &rule->from) == 0) {
+        if (in_addr_is_set(rule->family, &rule->from)) {
                 r = netlink_message_append_in_addr_union(m, FRA_SRC, rule->family, &rule->from);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not append FRA_SRC attribute: %m");
@@ -430,7 +430,7 @@ static int routing_policy_rule_set_netlink_message(const RoutingPolicyRule *rule
                         return log_link_error_errno(link, r, "Could not set source prefix length: %m");
         }
 
-        if (in_addr_is_null(rule->family, &rule->to) == 0) {
+        if (in_addr_is_set(rule->family, &rule->to)) {
                 r = netlink_message_append_in_addr_union(m, FRA_DST, rule->family, &rule->to);
                 if (r < 0)
                         return log_link_error_errno(link, r, "Could not append FRA_DST attribute: %m");
index 760e33151b9ebe4122d86c5578c7ebf82476efb0..25ff3a33a897093eb044ccec8ff56211ccbda667 100644 (file)
@@ -34,15 +34,15 @@ static void test_deserialize_in_addr(void) {
 
         assert_se((size = deserialize_in_addrs(&addresses, addresses_string)) >= 0);
         assert_se(size == 3);
-        assert_se(in_addr_equal(AF_INET, &a, (union in_addr_union *) &addresses[0]));
-        assert_se(in_addr_equal(AF_INET, &b, (union in_addr_union *) &addresses[1]));
-        assert_se(in_addr_equal(AF_INET, &c, (union in_addr_union *) &addresses[2]));
+        assert_se(in4_addr_equal(&a.in, &addresses[0]));
+        assert_se(in4_addr_equal(&b.in, &addresses[1]));
+        assert_se(in4_addr_equal(&c.in, &addresses[2]));
 
         assert_se((size = deserialize_in6_addrs(&addresses6, addresses_string)) >= 0);
         assert_se(size == 3);
-        assert_se(in_addr_equal(AF_INET6, &d, (union in_addr_union *) &addresses6[0]));
-        assert_se(in_addr_equal(AF_INET6, &e, (union in_addr_union *) &addresses6[1]));
-        assert_se(in_addr_equal(AF_INET6, &f, (union in_addr_union *) &addresses6[2]));
+        assert_se(in6_addr_equal(&d.in6, &addresses6[0]));
+        assert_se(in6_addr_equal(&e.in6, &addresses6[1]));
+        assert_se(in6_addr_equal(&f.in6, &addresses6[2]));
 }
 
 static void test_deserialize_dhcp_routes(void) {
index 3bce3241021954564d5a1674eac9073721e935b6..9d5051d46d92252a86382bc147769e021cb08abd 100644 (file)
@@ -92,7 +92,7 @@ int expose_port_flush(FirewallContext **fw_ctx, ExposePort* l, int af, union in_
         if (!l)
                 return 0;
 
-        if (in_addr_is_null(af, exposed))
+        if (!in_addr_is_set(af, exposed))
                 return 0;
 
         log_debug("Lost IP address.");
@@ -159,7 +159,7 @@ int expose_port_execute(sd_netlink *rtnl, FirewallContext **fw_ctx, ExposePort *
                                       p->host_port,
                                       &new_exposed,
                                       p->container_port,
-                                      in_addr_is_null(af, exposed) ? NULL : exposed);
+                                      in_addr_is_set(af, exposed) ? exposed : NULL);
                 if (r < 0)
                         log_warning_errno(r, "Failed to modify %s firewall: %m", af_to_name(af));
         }
index ffabc60c7094e37e7d1b08899dac9953ee2e4f33..6e37966da08c5bcedc67868b43a8c789bda39ed0 100644 (file)
@@ -134,7 +134,7 @@ enum nss_status _nss_myhostname_gethostbyname4_r(
                 r_tuple->next = r_tuple_prev;
                 r_tuple->name = r_name;
                 r_tuple->family = a->family;
-                r_tuple->scopeid = a->family == AF_INET6 && IN6_IS_ADDR_LINKLOCAL(&a->address.in6) ? a->ifindex : 0;
+                r_tuple->scopeid = a->family == AF_INET6 && in6_addr_is_link_local(&a->address.in6) ? a->ifindex : 0;
                 memcpy(r_tuple->addr, &a->address, 16);
 
                 idx += ALIGN(sizeof(struct gaih_addrtuple));
index 5fcd39ee0a27fc4f6b923132450f7340d71c6af5..dfc0977c849c3692479bdc1428fa0bd20da716dd 100644 (file)
@@ -77,7 +77,7 @@ static uint32_t ifindex_to_scopeid(int family, const void *a, int ifindex) {
         assert(sizeof(in6) == FAMILY_ADDRESS_SIZE(AF_INET6));
         memcpy(&in6, a, sizeof(struct in6_addr));
 
-        return IN6_IS_ADDR_LINKLOCAL(&in6) ? ifindex : 0;
+        return in6_addr_is_link_local(&in6) ? ifindex : 0;
 }
 
 static int json_dispatch_ifindex(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
index 9e64c6dd31115ecc156a9325861f35ec36541a51..d844f7c9aa93268c3e1c88b6b93a95ca41b7dc40 100644 (file)
@@ -1730,7 +1730,7 @@ bool dns_resource_record_is_link_local_address(DnsResourceRecord *rr) {
                 return in4_addr_is_link_local(&rr->a.in_addr);
 
         if (rr->key->type == DNS_TYPE_AAAA)
-                return IN6_IS_ADDR_LINKLOCAL(&rr->aaaa.in6_addr);
+                return in6_addr_is_link_local(&rr->aaaa.in6_addr);
 
         return false;
 }
index 4495a93add3d453e08b56e78d72cdd429ee32433..f1dff95a86d552e23705b942298668201e7e4563 100644 (file)
@@ -920,10 +920,10 @@ void dns_scope_process_query(DnsScope *s, DnsStream *stream, DnsPacket *p) {
                  * the LLMNR multicast addresses. See RFC 4795,
                  * section 2.5. */
 
-                if (p->family == AF_INET && !in_addr_equal(AF_INET, &p->destination, (union in_addr_union*) &LLMNR_MULTICAST_IPV4_ADDRESS))
+                if (p->family == AF_INET && !in4_addr_equal(&p->destination.in, &LLMNR_MULTICAST_IPV4_ADDRESS))
                         return;
 
-                if (p->family == AF_INET6 && !in_addr_equal(AF_INET6, &p->destination, (union in_addr_union*) &LLMNR_MULTICAST_IPV6_ADDRESS))
+                if (p->family == AF_INET6 && !in6_addr_equal(&p->destination.in6, &LLMNR_MULTICAST_IPV6_ADDRESS))
                         return;
         }
 
index 0c35d91a83d077a18f25ef993eba5eca50bfc471..65b815c43c34e25a25e8ca7fb6592c816e10f402 100644 (file)
@@ -61,7 +61,7 @@ static int parse_line(EtcHosts *hosts, unsigned nr, const char *line) {
                 return 0;
         }
 
-        r = in_addr_is_null(address.family, &address.address);
+        r = in_addr_data_is_null(&address);
         if (r < 0) {
                 log_warning_errno(r, "/etc/hosts:%u: address '%s' is invalid, ignoring: %m", nr, address_str);
                 return 0;
index 1023b62499b3f05f5004e66a06175470b515af31..6541d231ed527161aef2567f34ae3884d77994c2 100644 (file)
@@ -33,7 +33,7 @@ bool dns_server_address_valid(int family, const union in_addr_union *sa) {
 
         /* Refuses the 0 IP addresses as well as 127.0.0.53 (which is our own DNS stub) */
 
-        if (in_addr_is_null(family, sa))
+        if (!in_addr_is_set(family, sa))
                 return false;
 
         if (family == AF_INET && sa->in.s_addr == htobe32(INADDR_DNS_STUB))