diff options
author | james <james@e7ae566f-a301-0410-adde-c780ea21d3b5> | 2006-11-13 09:31:40 +0000 |
---|---|---|
committer | james <james@e7ae566f-a301-0410-adde-c780ea21d3b5> | 2006-11-13 09:31:40 +0000 |
commit | 2c21891ec156adc304f4012343d75808a1036d0f (patch) | |
tree | bae7dffb6eefb75ee653848bc1926b188eaf917b /init.c | |
parent | Backed out AUTO_USERID feature introduced in r1436. (diff) | |
download | openvpn-2c21891ec156adc304f4012343d75808a1036d0f.tar.xz |
Attempt at rational signal handling when in the
management hold state.
During management hold, ignore SIGUSR1/SIGHUP signals
thrown with the "signal" command.
Also, "signal" command will now apply remapping as
specified with the --remap-usr1 option.
When a signal entered using the "signal" command from a management
hold is ignored, output:
>HOLD:Waiting for hold release
git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@1458 e7ae566f-a301-0410-adde-c780ea21d3b5
Diffstat (limited to 'init.c')
-rw-r--r-- | init.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1225,6 +1225,7 @@ socket_restart_pause (struct context *c) sec = c->persist.restart_sleep_seconds; c->persist.restart_sleep_seconds = 0; + /* do managment hold on context restart, i.e. second, third, fourth, etc. initialization */ if (do_hold (NULL)) sec = 0; @@ -1244,7 +1245,7 @@ do_startup_pause (struct context *c) if (!c->first_time) socket_restart_pause (c); else - do_hold (NULL); + do_hold (NULL); /* do management hold on first context initialization */ } /* @@ -2456,7 +2457,8 @@ open_management (struct context *c) c->options.management_state_buffer_size, c->options.management_hold, c->options.management_client, - c->options.management_write_peer_info_file)) + c->options.management_write_peer_info_file, + c->options.remap_sigusr1)) { management_set_state (management, OPENVPN_STATE_CONNECTING, @@ -2465,7 +2467,7 @@ open_management (struct context *c) (in_addr_t)0); } - /* possible wait */ + /* initial management hold, called early, before first context initialization */ do_hold (c); if (IS_SIG (c)) { |