X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudevadm.c;h=53419ffa62e481cac1e530dd552d0412875c2aab;hb=971e7fb62548f2c9c4e32684bb13409e6579dc6a;hp=55b5948aaebc46a8573476b82ac3df8880520782;hpb=baa30fbc2c04b23209d0b8fb3c86cd15ef9ea81a;p=elogind.git diff --git a/src/udev/udevadm.c b/src/udev/udevadm.c index 55b5948aa..53419ffa6 100644 --- a/src/udev/udevadm.c +++ b/src/udev/udevadm.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Kay Sievers + * Copyright (C) 2007-2012 Kay Sievers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -56,6 +56,7 @@ static const struct udevadm_cmd *udevadm_cmds[] = { &udevadm_settle, &udevadm_control, &udevadm_monitor, + &udevadm_hwdb, &udevadm_test, &udevadm_test_builtin, &udevadm_version, @@ -67,7 +68,7 @@ static int adm_help(struct udev *udev, int argc, char *argv[]) unsigned int i; fprintf(stderr, "Usage: udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS]\n"); - for (i = 0; i < ARRAY_SIZE(udevadm_cmds); i++) + for (i = 0; i < ELEMENTSOF(udevadm_cmds); i++) if (udevadm_cmds[i]->help != NULL) printf(" %-12s %s\n", udevadm_cmds[i]->name, udevadm_cmds[i]->help); fprintf(stderr, "\n"); @@ -99,10 +100,10 @@ int main(int argc, char *argv[]) if (udev == NULL) goto out; - log_open(); log_parse_environment(); + log_open(); udev_set_log_fn(udev, udev_main_log); - udev_selinux_init(udev); + label_init("/dev"); for (;;) { int option; @@ -128,13 +129,12 @@ int main(int argc, char *argv[]) } command = argv[optind]; - log_debug("runtime dir '%s'\n", udev_get_run_path(udev)); - if (command != NULL) - for (i = 0; i < ARRAY_SIZE(udevadm_cmds); i++) { + for (i = 0; i < ELEMENTSOF(udevadm_cmds); i++) { if (strcmp(udevadm_cmds[i]->name, command) == 0) { argc -= optind; argv += optind; + /* we need '0' here to reset the internal state */ optind = 0; rc = run_command(udev, udevadm_cmds[i], argc, argv); goto out; @@ -145,7 +145,7 @@ int main(int argc, char *argv[]) adm_help(udev, argc, argv); rc = 2; out: - udev_selinux_exit(udev); + label_finish(); udev_unref(udev); log_close(); return rc;