diff --git a/ChangeLog b/ChangeLog index d24487399..5eb87bdb6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-09-25 Dan Williams + + * src/NetworkManager.c + - (nm_signal_handler, main): don't ignore SIGTERM/SIGINT during startup + 2007-09-25 Dan Williams * src/supplicant-manager/nm-supplicant-manager.c diff --git a/src/NetworkManager.c b/src/NetworkManager.c index 52dbee0b4..3cfedc78c 100644 --- a/src/NetworkManager.c +++ b/src/NetworkManager.c @@ -102,6 +102,8 @@ nm_monitor_setup (void) return TRUE; } +static gboolean quit_early = FALSE; + static void nm_signal_handler (int signo) { @@ -139,6 +141,7 @@ nm_signal_handler (int signo) --in_fatal; nm_warning ("Caught signal %d, shutting down normally.", signo); + quit_early = TRUE; g_main_loop_quit (main_loop); break; @@ -367,6 +370,10 @@ main (int argc, char *argv[]) /* Bring up the loopback interface. */ nm_system_enable_loopback (); + /* Told to quit before getting to the mainloop by the signal handler */ + if (quit_early == TRUE) + goto done; + /* Run the main loop */ exit_status = 0; g_main_loop_run (main_loop);