]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network/radv: modernize config_parse_router_preference()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 18 Nov 2024 05:45:03 +0000 (14:45 +0900)
committerLuca Boccassi <bluca@debian.org>
Wed, 22 Jan 2025 20:48:31 +0000 (20:48 +0000)
src/network/networkd-network-gperf.gperf
src/network/networkd-radv.c

index 9a25be666be289542ac9d13236b56af5f9bce3de..09a718efdad9a88c7a56e214619d2c5ab223e224 100644 (file)
@@ -408,7 +408,7 @@ IPv6SendRA.ReachableTimeSec,                 config_parse_router_uint32_msec_use
 IPv6SendRA.RetransmitSec,                    config_parse_router_uint32_msec_usec,                     0,                             offsetof(Network, router_retransmit_usec)
 IPv6SendRA.Managed,                          config_parse_bool,                                        0,                             offsetof(Network, router_managed)
 IPv6SendRA.OtherInformation,                 config_parse_bool,                                        0,                             offsetof(Network, router_other_information)
-IPv6SendRA.RouterPreference,                 config_parse_router_preference,                           0,                             0
+IPv6SendRA.RouterPreference,                 config_parse_router_preference,                           0,                             offsetof(Network, router_preference)
 IPv6SendRA.HopLimit,                         config_parse_uint8,                                       0,                             offsetof(Network, router_hop_limit)
 IPv6SendRA.EmitDNS,                          config_parse_bool,                                        0,                             offsetof(Network, router_emit_dns)
 IPv6SendRA.DNS,                              config_parse_radv_dns,                                    0,                             0
index deb37c485090519f6214d3390c73de7998f3b161..9b1bd1287ad2124f86183b4cc581d2d612d8525d 100644 (file)
@@ -1511,25 +1511,18 @@ int config_parse_router_preference(
                 void *data,
                 void *userdata) {
 
-        Network *network = userdata;
+        uint8_t *preference = ASSERT_PTR(data);
 
-        assert(filename);
-        assert(section);
-        assert(lvalue);
-        assert(rvalue);
-        assert(data);
-
-        if (streq(rvalue, "high"))
-                network->router_preference = SD_NDISC_PREFERENCE_HIGH;
-        else if (STR_IN_SET(rvalue, "medium", "normal", "default"))
-                network->router_preference = SD_NDISC_PREFERENCE_MEDIUM;
+        if (isempty(rvalue) || STR_IN_SET(rvalue, "medium", "normal", "default"))
+                *preference = SD_NDISC_PREFERENCE_MEDIUM;
+        else if (streq(rvalue, "high"))
+                *preference = SD_NDISC_PREFERENCE_HIGH;
         else if (streq(rvalue, "low"))
-                network->router_preference = SD_NDISC_PREFERENCE_LOW;
+                *preference = SD_NDISC_PREFERENCE_LOW;
         else
-                log_syntax(unit, LOG_WARNING, filename, line, 0,
-                           "Invalid router preference, ignoring assignment: %s", rvalue);
+                return log_syntax_parse_error(unit, filename, line, 0, lvalue, rvalue);
 
-        return 0;
+        return 1;
 }
 
 int config_parse_router_home_agent_lifetime(