chiark / gitweb /
network/link: Match - filter on kernel cmdline, host and virt
[elogind.git] / src / udev / net / link-config.c
index 3afaff10c8cf73626e30ca2aa495f04d6170ee95..15bea4f4caa3cd089288bcddc09f67b1586c228c 100644 (file)
@@ -97,7 +97,7 @@ static int link_config_ctx_connect(link_config_ctx *ctx) {
         if (r < 0)
                 return r;
 
-        r = sd_rtnl_open(0, &ctx->rtnl);
+        r = sd_rtnl_open(&ctx->rtnl, 0);
         if (r < 0)
                 return r;
 
@@ -242,6 +242,7 @@ int link_config_get(link_config_ctx *ctx, struct udev_device *device, link_confi
 
                 if (net_match_config(link->match_mac, link->match_path,
                                      link->match_driver, link->match_type, NULL,
+                                     link->match_host, link->match_virt, link->match_kernel,
                                      udev_device_get_sysattr_value(device, "address"),
                                      udev_device_get_property_value(device, "ID_PATH"),
                                      udev_device_get_driver(udev_device_get_parent(device)),
@@ -383,6 +384,9 @@ int link_config_apply(link_config_ctx *ctx, link_config *config, struct udev_dev
 
                 for (policy = config->name_policy; !new_name && *policy != _NAMEPOLICY_INVALID; policy++) {
                         switch (*policy) {
+                                case NAMEPOLICY_DATABASE:
+                                        new_name = udev_device_get_property_value(device, "ID_NET_NAME_FROM_DATABASE");
+                                        break;
                                 case NAMEPOLICY_ONBOARD:
                                         new_name = udev_device_get_property_value(device, "ID_NET_NAME_ONBOARD");
                                         break;
@@ -447,6 +451,7 @@ DEFINE_STRING_TABLE_LOOKUP(mac_policy, MACPolicy);
 DEFINE_CONFIG_PARSE_ENUM(config_parse_mac_policy, mac_policy, MACPolicy, "Failed to parse MAC address policy");
 
 static const char* const name_policy_table[] = {
+        [NAMEPOLICY_DATABASE] = "database",
         [NAMEPOLICY_ONBOARD] = "onboard",
         [NAMEPOLICY_SLOT] = "slot",
         [NAMEPOLICY_PATH] = "path",