X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin-net_setup_link.c;h=d4589470fb46b32fcf412b442dd93d14a44a6457;hb=c74f883c6f7d5901b3c543d47f64082ccd91a895;hp=6a98b802b2faf7cce52e30d8705d7baa58cf093e;hpb=e0221a35c8a967b2c772f26fcb6ef2300216d0b0;p=elogind.git diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c index 6a98b802b..d4589470f 100644 --- a/src/udev/udev-builtin-net_setup_link.c +++ b/src/udev/udev-builtin-net_setup_link.c @@ -23,9 +23,11 @@ #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) { + _cleanup_free_ char *driver = NULL; + const char *name = NULL; link_config *link; int r; @@ -34,23 +36,32 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv return EXIT_FAILURE; } + r = link_get_driver(ctx, dev, &driver); + if (r >= 0) + udev_builtin_add_property(dev, test, "ID_NET_DRIVER", driver); + r = link_config_get(ctx, dev, &link); if (r < 0) { if (r == -ENOENT) { - log_debug("No matching link configuration found"); + log_debug("No matching link configuration found."); return EXIT_SUCCESS; } else { - log_error("Could not get link config"); + log_error_errno(r, "Could not get link config: %m"); return EXIT_FAILURE; } } - 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)); + log_error_errno(r, "Could not apply link config to %s: %m", udev_device_get_sysname(dev)); return EXIT_FAILURE; } + udev_builtin_add_property(dev, test, "ID_NET_LINK_FILE", link->filename); + + if (name) + udev_builtin_add_property(dev, test, "ID_NET_NAME", name); + return EXIT_SUCCESS; } @@ -68,18 +79,18 @@ static int builtin_net_setup_link_init(struct udev *udev) { if (r < 0) return r; - log_debug("Created link configuration context"); + log_debug("Created link configuration context."); return 0; } static void builtin_net_setup_link_exit(struct udev *udev) { link_config_ctx_free(ctx); ctx = NULL; - log_debug("Unloaded link configuration context"); + log_debug("Unloaded link configuration context."); } static bool builtin_net_setup_link_validate(struct udev *udev) { - log_debug("Check if link configuration needs reloading"); + log_debug("Check if link configuration needs reloading."); if (!ctx) return false; @@ -92,6 +103,6 @@ const struct udev_builtin udev_builtin_net_setup_link = { .init = builtin_net_setup_link_init, .exit = builtin_net_setup_link_exit, .validate = builtin_net_setup_link_validate, - .help = "configure network link", + .help = "Configure network link", .run_once = false, };