From 1184b82454776eb075d01c308870697a1668612d Mon Sep 17 00:00:00 2001 From: james Date: Mon, 22 Oct 2007 19:12:54 +0000 Subject: Added --management-signal option to signal SIGUSR1 when the management interface disconnects (Alon Bar-Lev). git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@2413 e7ae566f-a301-0410-adde-c780ea21d3b5 --- manage.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'manage.c') diff --git a/manage.c b/manage.c index 7323dd6..b6f8bcf 100644 --- a/manage.c +++ b/manage.c @@ -1080,6 +1080,15 @@ man_reset_client_socket (struct management *man, const bool exiting) } if (!exiting) { + if (man->settings.signal_on_disconnect) { + int mysig = man_mod_signal (man, SIGUSR1); + if (mysig >= 0) + { + msg (D_MANAGEMENT, "MANAGEMENT: Triggering management signal"); + throw_signal_soft (mysig, "management-disconnect"); + } + } + if (man->settings.connect_as_client) { msg (D_MANAGEMENT, "MANAGEMENT: Triggering management exit"); @@ -1323,6 +1332,7 @@ man_settings_init (struct man_settings *ms, const int echo_buffer_size, const int state_buffer_size, const bool hold, + const bool signal_on_disconnect, const bool connect_as_client, const char *write_peer_info_file, const int remap_sigusr1) @@ -1354,6 +1364,12 @@ man_settings_init (struct man_settings *ms, */ ms->hold = hold; + /* + * Should OpenVPN be signaled if management + * disconnects? + */ + ms->signal_on_disconnect = signal_on_disconnect; + /* * Should OpenVPN connect to management interface as a client * rather than a server? @@ -1496,6 +1512,7 @@ management_open (struct management *man, const int echo_buffer_size, const int state_buffer_size, const bool hold, + const bool signal_on_disconnect, const bool connect_as_client, const char *write_peer_info_file, const int remap_sigusr1) @@ -1516,6 +1533,7 @@ management_open (struct management *man, echo_buffer_size, state_buffer_size, hold, + signal_on_disconnect, connect_as_client, write_peer_info_file, remap_sigusr1); -- cgit