]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: use ltype to determine netdev kind in config_parse_stacked_netdev()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 28 Feb 2019 07:18:57 +0000 (16:18 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 13 Mar 2019 02:59:18 +0000 (11:59 +0900)
src/network/networkd-network-gperf.gperf
src/network/networkd-network.c

index 51123d12ef0cacd1751b55cd7f3e6d15db6beb90..43ee17fe355ee1f7bc340c021a0420dbdd18c684 100644 (file)
@@ -40,11 +40,11 @@ Link.RequiredForOnline,                 config_parse_bool,
 Network.Description,                    config_parse_string,                            0,                             offsetof(Network, description)
 Network.Bridge,                         config_parse_ifname,                            0,                             offsetof(Network, bridge_name)
 Network.Bond,                           config_parse_ifname,                            0,                             offsetof(Network, bond_name)
-Network.VLAN,                           config_parse_stacked_netdev,                    0,                             offsetof(Network, stacked_netdev_names)
-Network.MACVLAN,                        config_parse_stacked_netdev,                    0,                             offsetof(Network, stacked_netdev_names)
-Network.MACVTAP,                        config_parse_stacked_netdev,                    0,                             offsetof(Network, stacked_netdev_names)
-Network.IPVLAN,                         config_parse_stacked_netdev,                    0,                             offsetof(Network, stacked_netdev_names)
-Network.VXLAN,                          config_parse_stacked_netdev,                    0,                             offsetof(Network, stacked_netdev_names)
+Network.VLAN,                           config_parse_stacked_netdev,                    NETDEV_KIND_VLAN,              offsetof(Network, stacked_netdev_names)
+Network.MACVLAN,                        config_parse_stacked_netdev,                    NETDEV_KIND_MACVLAN,           offsetof(Network, stacked_netdev_names)
+Network.MACVTAP,                        config_parse_stacked_netdev,                    NETDEV_KIND_MACVTAP,           offsetof(Network, stacked_netdev_names)
+Network.IPVLAN,                         config_parse_stacked_netdev,                    NETDEV_KIND_IPVLAN,            offsetof(Network, stacked_netdev_names)
+Network.VXLAN,                          config_parse_stacked_netdev,                    NETDEV_KIND_VXLAN,             offsetof(Network, stacked_netdev_names)
 Network.Tunnel,                         config_parse_stacked_netdev,                    _NETDEV_KIND_TUNNEL,           offsetof(Network, stacked_netdev_names)
 Network.VRF,                            config_parse_ifname,                            0,                             offsetof(Network, vrf_name)
 Network.DHCP,                           config_parse_dhcp,                              0,                             offsetof(Network, dhcp)
index 5f12df907afe9afcc8127c89fa2f49b44fac116f..1e5684144dcf1fdffcdc75edbd8fa5831c98d605 100644 (file)
@@ -732,35 +732,18 @@ int config_parse_stacked_netdev(const char *unit,
                 const char *rvalue,
                 void *data,
                 void *userdata) {
-        _cleanup_free_ char *kind_string = NULL, *name = NULL;
+        _cleanup_free_ char *name = NULL;
+        NetDevKind kind = ltype;
         Hashmap **h = data;
-        NetDevKind kind;
-        char *p;
         int r;
 
         assert(filename);
         assert(lvalue);
         assert(rvalue);
         assert(data);
-
-        if (ltype == _NETDEV_KIND_TUNNEL)
-                kind = _NETDEV_KIND_TUNNEL;
-        else {
-                kind_string = strdup(lvalue);
-                if (!kind_string)
-                        return log_oom();
-
-                /* the keys are CamelCase versions of the kind */
-                for (p = kind_string; *p; p++)
-                        *p = tolower(*p);
-
-                kind = netdev_kind_from_string(kind_string);
-                if (kind < 0 || IN_SET(kind, NETDEV_KIND_BRIDGE, NETDEV_KIND_BOND, NETDEV_KIND_VRF)) {
-                        log_syntax(unit, LOG_ERR, filename, line, 0,
-                                   "Invalid NetDev kind: %s", lvalue);
-                        return 0;
-                }
-        }
+        assert(IN_SET(kind,
+                      NETDEV_KIND_VLAN, NETDEV_KIND_MACVLAN, NETDEV_KIND_MACVTAP,
+                      NETDEV_KIND_IPVLAN, NETDEV_KIND_VXLAN, _NETDEV_KIND_TUNNEL));
 
         if (!ifname_valid(rvalue)) {
                 log_syntax(unit, LOG_ERR, filename, line, 0,