diff options
author | David Zeuthen <davidz@redhat.com> | 2004-09-12 10:23:42 +0000 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2004-09-12 10:23:42 +0000 |
commit | a24270a451c4ac7f8018bdd909a8f762e6abe80c (patch) | |
tree | ec7369b34b78779be8ee0bcb1b652b1571fd4275 | |
parent | a9ff341aa66588c12275529ee2d16843b493cb4f (diff) |
2004-09-12 David Zeuthen <david@fubar.dk>
Patch from Kay Sievers <kay.sievers@vrfy.org>
* bus/bus.c (bus_context_new):
* bus/bus.h:
* bus/main.c (usage)
(main):
Add commandline option --nofork to override configuration file
setting.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | bus/bus.c | 4 | ||||
-rw-r--r-- | bus/bus.h | 9 | ||||
-rw-r--r-- | bus/main.c | 18 |
4 files changed, 31 insertions, 11 deletions
@@ -1,3 +1,14 @@ +2004-09-12 David Zeuthen <david@fubar.dk> + + Patch from Kay Sievers <kay.sievers@vrfy.org> + + * bus/bus.c (bus_context_new): + * bus/bus.h: + * bus/main.c (usage) + (main): + Add commandline option --nofork to override configuration file + setting. + 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net> * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C @@ -537,7 +537,7 @@ load_config (BusContext *context, BusContext* bus_context_new (const DBusString *config_file, - dbus_bool_t force_fork, + ForceForkSetting force_fork, int print_addr_fd, int print_pid_fd, DBusError *error) @@ -656,7 +656,7 @@ bus_context_new (const DBusString *config_file, } /* Now become a daemon if appropriate */ - if (force_fork || context->fork) + if ((force_fork != FORK_NEVER && context->fork) || force_fork == FORK_ALWAYS) { DBusString u; @@ -61,8 +61,15 @@ typedef struct int reply_timeout; /**< How long to wait before timing out a reply */ } BusLimits; +typedef enum +{ + FORK_FOLLOW_CONFIG_FILE, + FORK_ALWAYS, + FORK_NEVER +} ForceForkSetting; + BusContext* bus_context_new (const DBusString *config_file, - dbus_bool_t force_fork, + ForceForkSetting force_fork, int print_addr_fd, int print_pid_fd, DBusError *error); @@ -62,7 +62,7 @@ signal_handler (int sig) static void usage (void) { - fprintf (stderr, "dbus-daemon-1 [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork]\n"); + fprintf (stderr, "dbus-daemon-1 [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork]\n"); exit (1); } @@ -200,8 +200,8 @@ main (int argc, char **argv) int i; dbus_bool_t print_address; dbus_bool_t print_pid; - dbus_bool_t force_fork; - + int force_fork; + if (!_dbus_string_init (&config_file)) return 1; @@ -210,25 +210,27 @@ main (int argc, char **argv) if (!_dbus_string_init (&pid_fd)) return 1; - + print_address = FALSE; print_pid = FALSE; - force_fork = FALSE; - + force_fork = FORK_FOLLOW_CONFIG_FILE; + prev_arg = NULL; i = 1; while (i < argc) { const char *arg = argv[i]; - + if (strcmp (arg, "--help") == 0 || strcmp (arg, "-h") == 0 || strcmp (arg, "-?") == 0) usage (); else if (strcmp (arg, "--version") == 0) version (); + else if (strcmp (arg, "--nofork") == 0) + force_fork = FORK_NEVER; else if (strcmp (arg, "--fork") == 0) - force_fork = TRUE; + force_fork = FORK_ALWAYS; else if (strcmp (arg, "--system") == 0) { check_two_config_files (&config_file, "system"); |