diff options
Diffstat (limited to 'src/udev/udevadm-control.c')
-rw-r--r-- | src/udev/udevadm-control.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/udev/udevadm-control.c b/src/udev/udevadm-control.c index 6f8e96a123..d80d61583d 100644 --- a/src/udev/udevadm-control.c +++ b/src/udev/udevadm-control.c @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2005-2011 Kay Sievers <kay@vrfy.org> * @@ -23,12 +24,13 @@ #include "time-util.h" #include "udev-util.h" #include "udev.h" +#include "udevadm-util.h" static void print_help(void) { - printf("%s control COMMAND\n\n" + printf("%s control OPTION\n\n" "Control the udev daemon.\n\n" " -h --help Show this help\n" - " --version Show package version\n" + " -V --version Show package version\n" " -e --exit Instruct the daemon to cleanup and exit\n" " -l --log-priority=LEVEL Set the udev log level for the daemon\n" " -s --stop-exec-queue Do not execute events, queue only\n" @@ -36,7 +38,7 @@ static void print_help(void) { " -R --reload Reload rules and databases\n" " -p --property=KEY=VALUE Set a global property for all events\n" " -m --children-max=N Maximum number of children\n" - " --timeout=SECONDS Maximum time to block for a reply\n" + " -t --timeout=SECONDS Maximum time to block for a reply\n" , program_invocation_short_name); } @@ -56,20 +58,19 @@ static int adm_control(struct udev *udev, int argc, char *argv[]) { { "env", required_argument, NULL, 'p' }, /* alias for -p */ { "children-max", required_argument, NULL, 'm' }, { "timeout", required_argument, NULL, 't' }, + { "version", no_argument, NULL, 'V' }, { "help", no_argument, NULL, 'h' }, {} }; - if (getuid() != 0) { - log_error("root privileges required"); + if (must_be_root() < 0) return 1; - } uctrl = udev_ctrl_new(udev); if (uctrl == NULL) return 2; - while ((c = getopt_long(argc, argv, "el:sSRp:m:h", options, NULL)) >= 0) + while ((c = getopt_long(argc, argv, "el:sSRp:m:t:Vh", options, NULL)) >= 0) switch (c) { case 'e': if (udev_ctrl_send_exit(uctrl, timeout) < 0) @@ -152,6 +153,10 @@ static int adm_control(struct udev *udev, int argc, char *argv[]) { } break; } + case 'V': + print_version(); + rc = 0; + break; case 'h': print_help(); rc = 0; |