static int builtin_net_setup_link(sd_device *dev, int argc, char **argv, bool test) { _cleanup_free_ char *driver = NULL; const char *name = NULL; link_config *link; int r; if (argc > 1) return log_device_error_errno(dev, EINVAL, "This program takes no arguments."); 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) return log_device_debug_errno(dev, r, "No matching link configuration found."); return log_device_error_errno(dev, r, "Failed to get link config: %m"); } r = link_config_apply(ctx, link, dev, &name); if (r < 0) log_device_warning_errno(dev, r, "Could not apply link config, ignoring: %m"); 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 0; }
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; if (argc > 1) { log_error("This program takes no arguments."); 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."); return EXIT_SUCCESS; } else { log_error_errno(r, "Could not get link config: %m"); return EXIT_FAILURE; } } r = link_config_apply(ctx, link, dev, &name); if (r < 0) { 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; }