X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin-net_setup_link.c;h=87d10bf78fa8f150f702d06e820fe194412890e1;hb=baade8cc237c37bd8905d86ec6e9c7872d4abe03;hp=739221ba2b3f4f8f6f305842d587198aea4dca68;hpb=0b99c9f8f0cbfe9ab3de443cb6f94ecd7d21eae3;p=elogind.git diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c index 739221ba2..87d10bf78 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; 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,17 +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); - log_debug("Unloaded link configuration context"); + ctx = NULL; + 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;