diff options
author | Jon Trowbridge <trow@ximian.com> | 2004-04-16 15:01:25 +0000 |
---|---|---|
committer | Jon Trowbridge <trow@ximian.com> | 2004-04-16 15:01:25 +0000 |
commit | 600e411f25082bcf82d610a4c71b0dc3435b5a42 (patch) | |
tree | 661eb6afae344d8e28202df438801b6e1e3a094e /bus/main.c | |
parent | a470eaa0789662d3d3e1f0a23e75c7be2ab574cc (diff) | |
download | dbus-600e411f25082bcf82d610a4c71b0dc3435b5a42.tar.gz |
2004-04-15 Jon Trowbridge <trow@ximian.com>
* bus/main.c (signal_handler): Reload the configuration files
on SIGHUP.
(main): Set up our SIGHUP handler.
* bus/bus.c (struct BusContext): Store the config file, user and
fork flag in the BusContext.
(process_config_first_time_only): Added. Contains the code
(previously in bus_context_new) for setting up the BusContext from
the BusConfigParser that should only be run the first time the
config files are read.
(process_config_every_time): Added. Contains the code (previously
in bus_context_new) for setting up the BusContext from the
BusConfigParser that should be run every time the config files are
read.
(load_config): Added. Builds a BusConfigParser from the config
files and passes the resulting structure off to
process_config_first_time_only (assuming this is the first time)
and process_config_every_time.
(bus_context_new): All of the config-related code has been moved
to process_config_first_time_only and process_config_every_time.
Now this function just does the non-config-related initializations
and calls load_config.
(bus_context_reload_config): Added.
Diffstat (limited to 'bus/main.c')
-rw-r--r-- | bus/main.c | 27 |
1 files changed, 16 insertions, 11 deletions
@@ -29,15 +29,28 @@ #include <errno.h> static BusContext *context; -static dbus_bool_t got_sighup = FALSE; static void signal_handler (int sig) { + DBusError error; + switch (sig) { case SIGHUP: - got_sighup = TRUE; + /* FIXME: We shouldn't be reloading the config in the + signal handler. We should use a pipe or something to + make the reload happen in the main loop. */ + dbus_error_init (&error); + if (!bus_context_reload_config (context, &error)) + { + _dbus_warn ("Unable to reload configuration: %s\n", + error.message); + dbus_error_free (&error); + exit (1); + } + break; + case SIGTERM: _dbus_loop_quit (bus_context_get_loop (context)); break; @@ -297,7 +310,7 @@ main (int argc, char **argv) exit (1); } - /* FIXME we have to handle this properly below _dbus_set_signal_handler (SIGHUP, signal_handler); */ + _dbus_set_signal_handler (SIGHUP, signal_handler); _dbus_set_signal_handler (SIGTERM, signal_handler); _dbus_verbose ("We are on D-Bus...\n"); @@ -306,13 +319,5 @@ main (int argc, char **argv) bus_context_shutdown (context); bus_context_unref (context); - /* If we exited on TERM we just exit, if we exited on - * HUP we restart the daemon. - */ - if (got_sighup) - { - /* FIXME execv (argv) basically */ - } - return 0; } |