chiark / gitweb /
_noreturn_ --> noreturn for C11 compat
[elogind.git] / src / udev / udev-builtin-net_setup_link.c
index 739221ba2b3f4f8f6f305842d587198aea4dca68..b7ba8c90609c5b6dc023fe0c16e87005d78b357a 100644 (file)
 #include "udev.h"
 #include "log.h"
 
-link_config_ctx *ctx;
+static link_config_ctx *ctx = NULL;
 
 static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv, bool test) {
+        const char *name;
         link_config *link;
         int r;
 
@@ -45,12 +46,15 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv
                 }
         }
 
-        r = link_config_apply(ctx, link, dev);
+        r = link_config_apply(ctx, link, dev, &name);
         if (r < 0) {
                 log_error("Could not apply link config to %s", udev_device_get_sysname(dev));
                 return EXIT_FAILURE;
         }
 
+        if (name)
+                udev_builtin_add_property(dev, test, "ID_NET_NAME", name);
+
         return EXIT_SUCCESS;
 }
 
@@ -74,6 +78,7 @@ static int builtin_net_setup_link_init(struct udev *udev) {
 
 static void builtin_net_setup_link_exit(struct udev *udev) {
         link_config_ctx_free(ctx);
+        ctx = NULL;
         log_debug("Unloaded link configuration context");
 }