diff options
author | Ray Strode <rstrode@redhat.com> | 2006-12-20 06:18:19 +0000 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2006-12-20 06:18:19 +0000 |
commit | 5d77d1503e61339a971b099b8a4d24ffc502045b (patch) | |
tree | 05df7521b31ca52d05826e6229833ecf5379866c /bus/bus.c | |
parent | 3ec4b0f0238f65ed253644a1953cef9e351a3f71 (diff) |
2006-12-19 Ray Strode <rstrode@redhat.com>
* bus/bus.c (process_config_every_time):
don't overwrite existing bus context activation object
until after we've checked that the new activation is
valid.
* bus/main.c
(signal_handler), (handle_reload_watch):
don't call exit() on failure, instead make do and keep
going.
(close_reload_pipe): new function to turn off
hangup-causes-config-reload behavior if an unexpected
error occurs
Diffstat (limited to 'bus/bus.c')
-rw-r--r-- | bus/bus.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -402,6 +402,7 @@ process_config_every_time (BusContext *context, { DBusString full_address; DBusList *link; + BusActivation *new_activation; char *addr; dbus_bool_t retval; @@ -467,19 +468,20 @@ process_config_every_time (BusContext *context, } /* Create activation subsystem */ - - if (is_reload) - bus_activation_unref (context->activation); - - context->activation = bus_activation_new (context, &full_address, - bus_config_parser_get_service_dirs (parser), - error); - if (context->activation == NULL) + new_activation = bus_activation_new (context, &full_address, + bus_config_parser_get_service_dirs (parser), + error); + if (new_activation == NULL) { _DBUS_ASSERT_ERROR_IS_SET (error); goto failed; } + if (is_reload) + bus_activation_unref (context->activation); + + context->activation = new_activation; + /* Drop existing conf-dir watches (if applicable) */ if (is_reload) |