ryantimwilson / rpms / systemd

Forked from rpms/systemd a month ago
Clone
Zbigniew Jędrzejewski-Szmek 62fe94
From bba7a48439e63defa20641b140522eac55fc1a1e Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: Tom Gundersen <teg@jklm.no>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Fri, 12 Sep 2014 14:42:59 +0200
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] udev: split out parse_argv()
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Also rename some global variables to arg_* to make it clearer where they come from.
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/udev/udevd.c | 175 ++++++++++++++++++++++++++++++-------------------------
Zbigniew Jędrzejewski-Szmek 62fe94
 1 file changed, 95 insertions(+), 80 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
Zbigniew Jędrzejewski-Szmek 62fe94
index f0ecbf83ef..8cdcbd8fb0 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/udev/udevd.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/udev/udevd.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -54,8 +54,6 @@
Zbigniew Jędrzejewski-Szmek 62fe94
 #include "dev-setup.h"
Zbigniew Jędrzejewski-Szmek 62fe94
 #include "fileio.h"
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-static bool debug;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
 void udev_main_log(struct udev *udev, int priority,
Zbigniew Jędrzejewski-Szmek 62fe94
                    const char *file, int line, const char *fn,
Zbigniew Jędrzejewski-Szmek 62fe94
                    const char *format, va_list args) {
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -72,10 +70,13 @@ static int fd_inotify = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
 static bool stop_exec_queue;
Zbigniew Jędrzejewski-Szmek 62fe94
 static bool reload;
Zbigniew Jędrzejewski-Szmek 62fe94
 static int children;
Zbigniew Jędrzejewski-Szmek 62fe94
-static int children_max;
Zbigniew Jędrzejewski-Szmek 62fe94
-static int exec_delay;
Zbigniew Jędrzejewski-Szmek 62fe94
-static usec_t event_timeout_usec = 180 * USEC_PER_SEC;
Zbigniew Jędrzejewski-Szmek 62fe94
-static usec_t event_timeout_warn_usec = 180 * USEC_PER_SEC / 3;
Zbigniew Jędrzejewski-Szmek 62fe94
+static bool arg_debug = false;
Zbigniew Jędrzejewski-Szmek 62fe94
+static int arg_daemonize = false;
Zbigniew Jędrzejewski-Szmek 62fe94
+static int arg_resolve_names = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+static int arg_children_max;
Zbigniew Jędrzejewski-Szmek 62fe94
+static int arg_exec_delay;
Zbigniew Jędrzejewski-Szmek 62fe94
+static usec_t arg_event_timeout_usec = 180 * USEC_PER_SEC;
Zbigniew Jędrzejewski-Szmek 62fe94
+static usec_t arg_event_timeout_warn_usec = 180 * USEC_PER_SEC / 3;
Zbigniew Jędrzejewski-Szmek 62fe94
 static sigset_t sigmask_orig;
Zbigniew Jędrzejewski-Szmek 62fe94
 static UDEV_LIST(event_list);
Zbigniew Jędrzejewski-Szmek 62fe94
 static UDEV_LIST(worker_list);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -274,8 +275,8 @@ static void worker_new(struct event *event) {
Zbigniew Jędrzejewski-Szmek 62fe94
                         /* needed for SIGCHLD/SIGTERM in spawn() */
Zbigniew Jędrzejewski-Szmek 62fe94
                         udev_event->fd_signal = fd_signal;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                        if (exec_delay > 0)
Zbigniew Jędrzejewski-Szmek 62fe94
-                                udev_event->exec_delay = exec_delay;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        if (arg_exec_delay > 0)
Zbigniew Jędrzejewski-Szmek 62fe94
+                                udev_event->exec_delay = arg_exec_delay;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                         /*
Zbigniew Jędrzejewski-Szmek 62fe94
                          * Take a shared lock on the device node; this establishes
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -309,9 +310,9 @@ static void worker_new(struct event *event) {
Zbigniew Jędrzejewski-Szmek 62fe94
                         udev_event->rtnl = rtnl;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                         /* apply rules, create node, symlinks */
Zbigniew Jędrzejewski-Szmek 62fe94
-                        udev_event_execute_rules(udev_event, event_timeout_usec, event_timeout_warn_usec, rules, &sigmask_orig);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        udev_event_execute_rules(udev_event, arg_event_timeout_usec, arg_event_timeout_warn_usec, rules, &sigmask_orig);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                        udev_event_execute_run(udev_event, event_timeout_usec, event_timeout_warn_usec, &sigmask_orig);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        udev_event_execute_run(udev_event, arg_event_timeout_usec, arg_event_timeout_warn_usec, &sigmask_orig);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                         /* in case rtnl was initialized */
Zbigniew Jędrzejewski-Szmek 62fe94
                         rtnl = sd_rtnl_ref(udev_event->rtnl);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -441,8 +442,8 @@ static void event_run(struct event *event) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 return;
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (children >= children_max) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (children_max > 1)
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (children >= arg_children_max) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                if (arg_children_max > 1)
Zbigniew Jędrzejewski-Szmek 62fe94
                         log_debug("maximum number (%i) of children reached", children);
Zbigniew Jędrzejewski-Szmek 62fe94
                 return;
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -692,7 +693,7 @@ static struct udev_ctrl_connection *handle_ctrl_msg(struct udev_ctrl *uctrl) {
Zbigniew Jędrzejewski-Szmek 62fe94
         i = udev_ctrl_get_set_children_max(ctrl_msg);
Zbigniew Jędrzejewski-Szmek 62fe94
         if (i >= 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 log_debug("udevd message (SET_MAX_CHILDREN) received, children_max=%i", i);
Zbigniew Jędrzejewski-Szmek 62fe94
-                children_max = i;
Zbigniew Jędrzejewski-Szmek 62fe94
+                arg_children_max = i;
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         if (udev_ctrl_get_ping(ctrl_msg) > 0)
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -985,12 +986,12 @@ static void kernel_cmdline_options(struct udev *udev) {
Zbigniew Jędrzejewski-Szmek 62fe94
                         log_set_max_level(prio);
Zbigniew Jędrzejewski-Szmek 62fe94
                         udev_set_log_priority(udev, prio);
Zbigniew Jędrzejewski-Szmek 62fe94
                 } else if (startswith(opt, "udev.children-max=")) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        children_max = strtoul(opt + 18, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_children_max = strtoul(opt + 18, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
                 } else if (startswith(opt, "udev.exec-delay=")) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        exec_delay = strtoul(opt + 16, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_exec_delay = strtoul(opt + 16, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
                 } else if (startswith(opt, "udev.event-timeout=")) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_event_timeout_warn_usec = (arg_event_timeout_usec / 3) ? : 1;
Zbigniew Jędrzejewski-Szmek 62fe94
                 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 free(s);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1011,95 +1012,109 @@ static void help(void) {
Zbigniew Jędrzejewski-Szmek 62fe94
                , program_invocation_short_name);
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
-        struct udev *udev;
Zbigniew Jędrzejewski-Szmek 62fe94
-        sigset_t mask;
Zbigniew Jędrzejewski-Szmek 62fe94
-        int daemonize = false;
Zbigniew Jędrzejewski-Szmek 62fe94
-        int resolve_names = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+static int parse_argv(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         static const struct option options[] = {
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "daemon", no_argument, NULL, 'd' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "debug", no_argument, NULL, 'D' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "children-max", required_argument, NULL, 'c' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "exec-delay", required_argument, NULL, 'e' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "event-timeout", required_argument, NULL, 't' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "resolve-names", required_argument, NULL, 'N' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "help", no_argument, NULL, 'h' },
Zbigniew Jędrzejewski-Szmek 62fe94
-                { "version", no_argument, NULL, 'V' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "daemon",             no_argument,            NULL, 'd' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "debug",              no_argument,            NULL, 'D' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "children-max",       required_argument,      NULL, 'c' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "exec-delay",         required_argument,      NULL, 'e' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "event-timeout",      required_argument,      NULL, 't' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "resolve-names",      required_argument,      NULL, 'N' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "help",               no_argument,            NULL, 'h' },
Zbigniew Jędrzejewski-Szmek 62fe94
+                { "version",            no_argument,            NULL, 'V' },
Zbigniew Jędrzejewski-Szmek 62fe94
                 {}
Zbigniew Jędrzejewski-Szmek 62fe94
         };
Zbigniew Jędrzejewski-Szmek 62fe94
-        int fd_ctrl = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
-        int fd_netlink = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
-        int fd_worker = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
-        struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker;
Zbigniew Jędrzejewski-Szmek 62fe94
-        struct udev_ctrl_connection *ctrl_conn = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
-        int rc = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-        udev = udev_new();
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (udev == NULL)
Zbigniew Jędrzejewski-Szmek 62fe94
-                goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-        log_set_target(LOG_TARGET_AUTO);
Zbigniew Jędrzejewski-Szmek 62fe94
-        log_parse_environment();
Zbigniew Jędrzejewski-Szmek 62fe94
-        log_open();
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        udev_set_log_fn(udev, udev_main_log);
Zbigniew Jędrzejewski-Szmek 62fe94
-        log_set_max_level(udev_get_log_priority(udev));
Zbigniew Jędrzejewski-Szmek 62fe94
+        int c;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        log_debug("version %s", VERSION);
Zbigniew Jędrzejewski-Szmek 62fe94
-        label_init("/dev");
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(argc >= 0);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(argv);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        for (;;) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                int option;
Zbigniew Jędrzejewski-Szmek 62fe94
+        while ((c = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL)) >= 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL);
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (option == -1)
Zbigniew Jędrzejewski-Szmek 62fe94
-                        break;
Zbigniew Jędrzejewski-Szmek 62fe94
+                switch (c) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                switch (option) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'd':
Zbigniew Jędrzejewski-Szmek 62fe94
-                        daemonize = true;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_daemonize = true;
Zbigniew Jędrzejewski-Szmek 62fe94
                         break;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'c':
Zbigniew Jędrzejewski-Szmek 62fe94
-                        children_max = strtoul(optarg, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_children_max = strtoul(optarg, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
                         break;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'e':
Zbigniew Jędrzejewski-Szmek 62fe94
-                        exec_delay = strtoul(optarg, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_exec_delay = strtoul(optarg, NULL, 0);
Zbigniew Jędrzejewski-Szmek 62fe94
                         break;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 't':
Zbigniew Jędrzejewski-Szmek 62fe94
-                        event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_event_timeout_warn_usec = (arg_event_timeout_usec / 3) ? : 1;
Zbigniew Jędrzejewski-Szmek 62fe94
                         break;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'D':
Zbigniew Jędrzejewski-Szmek 62fe94
-                        debug = true;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        log_set_max_level(LOG_DEBUG);
Zbigniew Jędrzejewski-Szmek 62fe94
-                        udev_set_log_priority(udev, LOG_DEBUG);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_debug = true;
Zbigniew Jędrzejewski-Szmek 62fe94
                         break;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'N':
Zbigniew Jędrzejewski-Szmek 62fe94
                         if (streq(optarg, "early")) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                resolve_names = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+                                arg_resolve_names = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
                         } else if (streq(optarg, "late")) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                resolve_names = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+                                arg_resolve_names = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
                         } else if (streq(optarg, "never")) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                resolve_names = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
+                                arg_resolve_names = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
                         } else {
Zbigniew Jędrzejewski-Szmek 62fe94
                                 fprintf(stderr, "resolve-names must be early, late or never\n");
Zbigniew Jędrzejewski-Szmek 62fe94
                                 log_error("resolve-names must be early, late or never");
Zbigniew Jędrzejewski-Szmek 62fe94
-                                goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
+                                return 0;
Zbigniew Jędrzejewski-Szmek 62fe94
                         }
Zbigniew Jędrzejewski-Szmek 62fe94
                         break;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'h':
Zbigniew Jędrzejewski-Szmek 62fe94
                         help();
Zbigniew Jędrzejewski-Szmek 62fe94
-                        goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        return 0;
Zbigniew Jędrzejewski-Szmek 62fe94
                 case 'V':
Zbigniew Jędrzejewski-Szmek 62fe94
                         printf("%s\n", VERSION);
Zbigniew Jędrzejewski-Szmek 62fe94
-                        goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        return 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+                case '?':
Zbigniew Jędrzejewski-Szmek 62fe94
+                        return -EINVAL;
Zbigniew Jędrzejewski-Szmek 62fe94
                 default:
Zbigniew Jędrzejewski-Szmek 62fe94
-                        goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        assert_not_reached("Unhandled option");
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
                 }
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
+        return 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+}
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        struct udev *udev;
Zbigniew Jędrzejewski-Szmek 62fe94
+        sigset_t mask;
Zbigniew Jędrzejewski-Szmek 62fe94
+        int fd_ctrl = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
+        int fd_netlink = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
+        int fd_worker = -1;
Zbigniew Jędrzejewski-Szmek 62fe94
+        struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker;
Zbigniew Jędrzejewski-Szmek 62fe94
+        struct udev_ctrl_connection *ctrl_conn = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
+        int rc = 1, r;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        udev = udev_new();
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (udev == NULL)
Zbigniew Jędrzejewski-Szmek 62fe94
+                goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        log_set_target(LOG_TARGET_AUTO);
Zbigniew Jędrzejewski-Szmek 62fe94
+        log_parse_environment();
Zbigniew Jędrzejewski-Szmek 62fe94
+        log_open();
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        udev_set_log_fn(udev, udev_main_log);
Zbigniew Jędrzejewski-Szmek 62fe94
+        log_set_max_level(udev_get_log_priority(udev));
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        log_debug("version %s", VERSION);
Zbigniew Jędrzejewski-Szmek 62fe94
+        label_init("/dev");
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        r = parse_argv(argc, argv);
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (r <= 0)
Zbigniew Jędrzejewski-Szmek 62fe94
+                goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
         kernel_cmdline_options(udev);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (arg_debug) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                log_set_max_level(LOG_DEBUG);
Zbigniew Jędrzejewski-Szmek 62fe94
+                udev_set_log_priority(udev, LOG_DEBUG);
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
         if (getuid() != 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 fprintf(stderr, "root privileges required\n");
Zbigniew Jędrzejewski-Szmek 62fe94
                 log_error("root privileges required");
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1115,7 +1130,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
         dev_setup(NULL);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         /* before opening new files, make sure std{in,out,err} fds are in a sane state */
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (daemonize) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (arg_daemonize) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 int fd;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 fd = open("/dev/null", O_RDWR);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1188,7 +1203,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (daemonize) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (arg_daemonize) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 pid_t pid;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 pid = fork();
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1213,7 +1228,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         log_info("starting version " VERSION "\n");
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (!debug) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!arg_debug) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 int fd;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 fd = open("/dev/null", O_RDWR);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1256,7 +1271,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         udev_builtin_init(udev);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        rules = udev_rules_new(udev, resolve_names);
Zbigniew Jędrzejewski-Szmek 62fe94
+        rules = udev_rules_new(udev, arg_resolve_names);
Zbigniew Jędrzejewski-Szmek 62fe94
         if (rules == NULL) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 log_error("error reading rules");
Zbigniew Jędrzejewski-Szmek 62fe94
                 goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1296,16 +1311,16 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 goto exit;
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (children_max <= 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (arg_children_max <= 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 cpu_set_t cpu_set;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                children_max = 8;
Zbigniew Jędrzejewski-Szmek 62fe94
+                arg_children_max = 8;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        children_max +=  CPU_COUNT(&cpu_set) * 2;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        arg_children_max +=  CPU_COUNT(&cpu_set) * 2;
Zbigniew Jędrzejewski-Szmek 62fe94
                 }
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
-        log_debug("set children_max to %u", children_max);
Zbigniew Jędrzejewski-Szmek 62fe94
+        log_debug("set children_max to %u", arg_children_max);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         rc = udev_rules_apply_static_dev_perms(rules);
Zbigniew Jędrzejewski-Szmek 62fe94
         if (rc < 0)
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1401,8 +1416,8 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                                 ts = now(CLOCK_MONOTONIC);
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                                if ((ts - worker->event_start_usec) > event_timeout_warn_usec) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        if ((ts - worker->event_start_usec) > event_timeout_usec) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                                if ((ts - worker->event_start_usec) > arg_event_timeout_warn_usec) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                                        if ((ts - worker->event_start_usec) > arg_event_timeout_usec) {
Zbigniew Jędrzejewski-Szmek 62fe94
                                                 log_error("worker [%u] %s timeout; kill it", worker->pid, worker->event->devpath);
Zbigniew Jędrzejewski-Szmek 62fe94
                                                 kill(worker->pid, SIGKILL);
Zbigniew Jędrzejewski-Szmek 62fe94
                                                 worker->state = WORKER_KILLED;
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1473,7 +1488,7 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 if (!udev_list_node_is_empty(&event_list) && !udev_exit && !stop_exec_queue) {
Zbigniew Jędrzejewski-Szmek 62fe94
                         udev_builtin_init(udev);
Zbigniew Jędrzejewski-Szmek 62fe94
                         if (rules == NULL)
Zbigniew Jędrzejewski-Szmek 62fe94
-                                rules = udev_rules_new(udev, resolve_names);
Zbigniew Jędrzejewski-Szmek 62fe94
+                                rules = udev_rules_new(udev, arg_resolve_names);
Zbigniew Jędrzejewski-Szmek 62fe94
                         if (rules != NULL)
Zbigniew Jędrzejewski-Szmek 62fe94
                                 event_queue_start(udev);
Zbigniew Jędrzejewski-Szmek 62fe94
                 }