]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: make RADVPrefixDelegation enum bitfield
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Jul 2020 20:09:38 +0000 (05:09 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Jul 2020 20:09:42 +0000 (05:09 +0900)
This should not change any behavior.

src/network/networkd-dhcp6.c
src/network/networkd-link.c
src/network/networkd-radv.c
src/network/networkd-radv.h

index 3ac03c3eee7290515ec8c3abaa9746a0c739af93..e87d9d1e7c00b6889a1fa1b535fbacd8a38c9244 100644 (file)
@@ -430,9 +430,7 @@ bool link_dhcp6_pd_is_enabled(Link *link) {
         if (!link->network)
                 return false;
 
-        return IN_SET(link->network->router_prefix_delegation,
-                      RADV_PREFIX_DELEGATION_DHCP6,
-                      RADV_PREFIX_DELEGATION_BOTH);
+        return link->network->router_prefix_delegation & RADV_PREFIX_DELEGATION_DHCP6;
 }
 
 static bool link_has_preferred_subnet_id(Link *link) {
index 47bdd2a0dc7db16f29d352c4c4f39312a6fcf1c6..0057d184f7658c88d61dfffd699dffb7d0e7aca2 100644 (file)
@@ -1394,9 +1394,7 @@ static int link_request_set_addresses(Link *link) {
                         return r;
         }
 
-        if (IN_SET(link->network->router_prefix_delegation,
-                   RADV_PREFIX_DELEGATION_STATIC,
-                   RADV_PREFIX_DELEGATION_BOTH))
+        if (link->network->router_prefix_delegation & RADV_PREFIX_DELEGATION_STATIC)
                 LIST_FOREACH(prefixes, p, link->network->static_prefixes) {
                         _cleanup_(address_freep) Address *address = NULL;
 
index 88ca9ee7fad9bd069c4b44d04781636f56a4b9e6..dbc8fd8074928baca8f645e44dd5af8a17666b99 100644 (file)
@@ -650,10 +650,7 @@ int radv_configure(Link *link) {
                         return r;
         }
 
-        if (IN_SET(link->network->router_prefix_delegation,
-                   RADV_PREFIX_DELEGATION_STATIC,
-                   RADV_PREFIX_DELEGATION_BOTH)) {
-
+        if (link->network->router_prefix_delegation & RADV_PREFIX_DELEGATION_STATIC) {
                 LIST_FOREACH(prefixes, p, link->network->static_prefixes) {
                         r = sd_radv_add_prefix(link->radv, p->radv_prefix, false);
                         if (r == -EEXIST)
@@ -673,7 +670,6 @@ int radv_configure(Link *link) {
                         if (r < 0)
                                 return r;
                 }
-
         }
 
         return 0;
index fbd56d32a6b899e3d8d0fa8e759237509c953cb1..73143e74931420b7d94badf41d34852d9e42b22c 100644 (file)
@@ -14,10 +14,10 @@ typedef struct Prefix Prefix;
 typedef struct RoutePrefix RoutePrefix;
 
 typedef enum RADVPrefixDelegation {
-        RADV_PREFIX_DELEGATION_NONE,
-        RADV_PREFIX_DELEGATION_STATIC,
-        RADV_PREFIX_DELEGATION_DHCP6,
-        RADV_PREFIX_DELEGATION_BOTH,
+        RADV_PREFIX_DELEGATION_NONE   = 0,
+        RADV_PREFIX_DELEGATION_STATIC = 1 << 0,
+        RADV_PREFIX_DELEGATION_DHCP6  = 1 << 1,
+        RADV_PREFIX_DELEGATION_BOTH   = RADV_PREFIX_DELEGATION_STATIC | RADV_PREFIX_DELEGATION_DHCP6,
         _RADV_PREFIX_DELEGATION_MAX,
         _RADV_PREFIX_DELEGATION_INVALID = -1,
 } RADVPrefixDelegation;