version 1.231, 2011/01/16 12:05:59 |
version 1.232, 2011/04/17 22:42:41 |
|
|
set_control_persist_exit_time(void) |
set_control_persist_exit_time(void) |
{ |
{ |
if (muxserver_sock == -1 || !options.control_persist |
if (muxserver_sock == -1 || !options.control_persist |
|| options.control_persist_timeout == 0) |
|| options.control_persist_timeout == 0) { |
/* not using a ControlPersist timeout */ |
/* not using a ControlPersist timeout */ |
control_persist_exit_time = 0; |
control_persist_exit_time = 0; |
else if (channel_still_open()) { |
} else if (channel_still_open()) { |
/* some client connections are still open */ |
/* some client connections are still open */ |
if (control_persist_exit_time > 0) |
if (control_persist_exit_time > 0) |
debug2("%s: cancel scheduled exit", __func__); |
debug2("%s: cancel scheduled exit", __func__); |
|
|
|
|
if (compat20) { |
if (compat20) { |
session_ident = ssh2_chan_id; |
session_ident = ssh2_chan_id; |
if (escape_char_arg != SSH_ESCAPECHAR_NONE) |
if (session_ident != -1) { |
channel_register_filter(session_ident, |
if (escape_char_arg != SSH_ESCAPECHAR_NONE) { |
client_simple_escape_filter, NULL, |
channel_register_filter(session_ident, |
client_filter_cleanup, |
client_simple_escape_filter, NULL, |
client_new_escape_filter_ctx(escape_char_arg)); |
client_filter_cleanup, |
if (session_ident != -1) |
client_new_escape_filter_ctx( |
|
escape_char_arg)); |
|
} |
channel_register_cleanup(session_ident, |
channel_register_cleanup(session_ident, |
client_channel_closed, 0); |
client_channel_closed, 0); |
|
} |
} else { |
} else { |
/* Check if we should immediately send eof on stdin. */ |
/* Check if we should immediately send eof on stdin. */ |
client_check_initial_eof_on_stdin(); |
client_check_initial_eof_on_stdin(); |
|
|
client_init_dispatch_13(); |
client_init_dispatch_13(); |
else |
else |
client_init_dispatch_15(); |
client_init_dispatch_15(); |
|
} |
|
|
|
void |
|
client_stop_mux(void) |
|
{ |
|
if (options.control_path != NULL && muxserver_sock != -1) |
|
unlink(options.control_path); |
|
/* |
|
* If we are in persist mode, signal that we should close when all |
|
* active channels are closed. |
|
*/ |
|
if (options.control_persist) |
|
session_closed = 1; |
} |
} |
|
|
/* client specific fatal cleanup */ |
/* client specific fatal cleanup */ |