From 0b99c9f8f0cbfe9ab3de443cb6f94ecd7d21eae3 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Mon, 28 Oct 2013 20:20:59 +0100 Subject: udev: builtin - rename net_link to net_setup_link Also add shell completions. --- Makefile.am | 2 +- rules/85-net-configure-link.rules | 8 +-- shell-completion/bash/udevadm | 2 +- shell-completion/zsh/_udevadm | 2 +- src/udev/udev-builtin-net_link.c | 96 ---------------------------------- src/udev/udev-builtin-net_setup_link.c | 96 ++++++++++++++++++++++++++++++++++ src/udev/udev-builtin.c | 2 +- src/udev/udev.h | 2 +- 8 files changed, 105 insertions(+), 105 deletions(-) delete mode 100644 src/udev/udev-builtin-net_link.c create mode 100644 src/udev/udev-builtin-net_setup_link.c diff --git a/Makefile.am b/Makefile.am index bf5459a7b8..2f6ba211d7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2312,7 +2312,7 @@ libudev_core_la_SOURCES = \ src/udev/udev-builtin-input_id.c \ src/udev/udev-builtin-keyboard.c \ src/udev/udev-builtin-net_id.c \ - src/udev/udev-builtin-net_link.c \ + src/udev/udev-builtin-net_setup_link.c \ src/udev/udev-builtin-path_id.c \ src/udev/udev-builtin-usb_id.c \ src/udev/net/link-config.h \ diff --git a/rules/85-net-configure-link.rules b/rules/85-net-configure-link.rules index 29d689325d..d0ecb93058 100644 --- a/rules/85-net-configure-link.rules +++ b/rules/85-net-configure-link.rules @@ -1,11 +1,11 @@ # do not edit this file, it will be overwritten on update -SUBSYSTEM!="net", GOTO="net_link_end" +SUBSYSTEM!="net", GOTO="net_setup_link_end" IMPORT{builtin}="path_id" -ACTION!="add", GOTO="net_link_end" +ACTION!="add", GOTO="net_setup_link_end" -RUN{builtin}="net_link" +RUN{builtin}="net_setup_link" -LABEL="net_link_end" +LABEL="net_setup_link_end" diff --git a/shell-completion/bash/udevadm b/shell-completion/bash/udevadm index 8ad855060c..d58cdf532d 100644 --- a/shell-completion/bash/udevadm +++ b/shell-completion/bash/udevadm @@ -83,7 +83,7 @@ _udevadm() { fi ;; 'test-builtin') - comps='blkid btrfs hwdb input_id keyboard kmod net_id path_id usb_id uaccess' + comps='blkid btrfs hwdb input_id keyboard kmod net_id net_setup_link path_id usb_id uaccess' ;; *) comps=${VERBS[*]} diff --git a/shell-completion/zsh/_udevadm b/shell-completion/zsh/_udevadm index 04e9f8dd8e..e5d252c818 100644 --- a/shell-completion/zsh/_udevadm +++ b/shell-completion/zsh/_udevadm @@ -75,7 +75,7 @@ _udevadm_test-builtin(){ if (( CURRENT == 2 )); then _arguments \ '--help[Print help text]' \ - '*::builtins:(blkid btrfs hwdb input_id kmod path_id usb_id uaccess)' + '*::builtins:(blkid btrfs hwdb input_id net_id net_setup_link kmod path_id usb_id uaccess)' elif (( CURRENT == 3 )); then _arguments \ '--help[Print help text]' \ diff --git a/src/udev/udev-builtin-net_link.c b/src/udev/udev-builtin-net_link.c deleted file mode 100644 index f4fb63ec51..0000000000 --- a/src/udev/udev-builtin-net_link.c +++ /dev/null @@ -1,96 +0,0 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - -/*** - This file is part of systemd. - - Copyright 2013 Tom Gundersen - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - systemd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see . -***/ - -#include "link-config.h" -#include "udev.h" -#include "log.h" - -link_config_ctx *ctx; - -static int builtin_net_link(struct udev_device *dev, int argc, char **argv, bool test) { - link_config *link; - int r; - - if (argc > 1) { - log_error("This program takes no arguments."); - return EXIT_FAILURE; - } - - 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("Could not get link config"); - return EXIT_FAILURE; - } - } - - r = link_config_apply(ctx, link, dev); - if (r < 0) { - log_error("Could not apply link config to %s", udev_device_get_sysname(dev)); - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} - -static int builtin_net_link_init(struct udev *udev) { - int r; - - if (ctx) - return 0; - - r = link_config_ctx_new(&ctx); - if (r < 0) - return r; - - r = link_config_load(ctx); - if (r < 0) - return r; - - log_debug("Created link configuration context"); - return 0; -} - -static void builtin_net_link_exit(struct udev *udev) { - link_config_ctx_free(ctx); - log_debug("Unloaded link configuration context"); -} - -static bool builtin_net_link_validate(struct udev *udev) { - log_debug("Check if link configuration needs reloading"); - if (!ctx) - return false; - - return link_config_should_reload(ctx); -} - -const struct udev_builtin udev_builtin_net_link = { - .name = "net_link", - .cmd = builtin_net_link, - .init = builtin_net_link_init, - .exit = builtin_net_link_exit, - .validate = builtin_net_link_validate, - .help = "configure network link", - .run_once = false, -}; diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c new file mode 100644 index 0000000000..739221ba2b --- /dev/null +++ b/src/udev/udev-builtin-net_setup_link.c @@ -0,0 +1,96 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** + This file is part of systemd. + + Copyright 2013 Tom Gundersen + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see . +***/ + +#include "link-config.h" +#include "udev.h" +#include "log.h" + +link_config_ctx *ctx; + +static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv, bool test) { + link_config *link; + int r; + + if (argc > 1) { + log_error("This program takes no arguments."); + return EXIT_FAILURE; + } + + 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("Could not get link config"); + return EXIT_FAILURE; + } + } + + r = link_config_apply(ctx, link, dev); + if (r < 0) { + log_error("Could not apply link config to %s", udev_device_get_sysname(dev)); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} + +static int builtin_net_setup_link_init(struct udev *udev) { + int r; + + if (ctx) + return 0; + + r = link_config_ctx_new(&ctx); + if (r < 0) + return r; + + r = link_config_load(ctx); + if (r < 0) + return r; + + 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"); +} + +static bool builtin_net_setup_link_validate(struct udev *udev) { + log_debug("Check if link configuration needs reloading"); + if (!ctx) + return false; + + return link_config_should_reload(ctx); +} + +const struct udev_builtin udev_builtin_net_setup_link = { + .name = "net_setup_link", + .cmd = 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", + .run_once = false, +}; diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index 85901e8ee3..fd373d04dc 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -44,7 +44,7 @@ static const struct udev_builtin *builtins[] = { [UDEV_BUILTIN_KMOD] = &udev_builtin_kmod, #endif [UDEV_BUILTIN_NET_ID] = &udev_builtin_net_id, - [UDEV_BUILTIN_NET_LINK] = &udev_builtin_net_link, + [UDEV_BUILTIN_NET_LINK] = &udev_builtin_net_setup_link, [UDEV_BUILTIN_PATH_ID] = &udev_builtin_path_id, [UDEV_BUILTIN_USB_ID] = &udev_builtin_usb_id, #ifdef HAVE_ACL diff --git a/src/udev/udev.h b/src/udev/udev.h index 7cca8b8c83..46235b13a7 100644 --- a/src/udev/udev.h +++ b/src/udev/udev.h @@ -184,7 +184,7 @@ extern const struct udev_builtin udev_builtin_keyboard; extern const struct udev_builtin udev_builtin_kmod; #endif extern const struct udev_builtin udev_builtin_net_id; -extern const struct udev_builtin udev_builtin_net_link; +extern const struct udev_builtin udev_builtin_net_setup_link; extern const struct udev_builtin udev_builtin_path_id; extern const struct udev_builtin udev_builtin_usb_id; extern const struct udev_builtin udev_builtin_uaccess; -- cgit v1.2.3-54-g00ecf