version 1.59, 2016/04/01 02:34:10 |
version 1.60, 2016/06/03 03:14:41 |
|
|
extern int subsystem_flag; |
extern int subsystem_flag; |
extern Buffer command; |
extern Buffer command; |
extern volatile sig_atomic_t quit_pending; |
extern volatile sig_atomic_t quit_pending; |
extern char *stdio_forward_host; |
|
extern int stdio_forward_port; |
|
|
|
/* Context for session open confirmation callback */ |
/* Context for session open confirmation callback */ |
struct mux_session_confirm_ctx { |
struct mux_session_confirm_ctx { |
|
|
buffer_put_int(&m, MUX_C_NEW_STDIO_FWD); |
buffer_put_int(&m, MUX_C_NEW_STDIO_FWD); |
buffer_put_int(&m, muxclient_request_id); |
buffer_put_int(&m, muxclient_request_id); |
buffer_put_cstring(&m, ""); /* reserved */ |
buffer_put_cstring(&m, ""); /* reserved */ |
buffer_put_cstring(&m, stdio_forward_host); |
buffer_put_cstring(&m, options.stdio_forward_host); |
buffer_put_int(&m, stdio_forward_port); |
buffer_put_int(&m, options.stdio_forward_port); |
|
|
if (mux_client_write_packet(fd, &m) != 0) |
if (mux_client_write_packet(fd, &m) != 0) |
fatal("%s: write packet: %s", __func__, strerror(errno)); |
fatal("%s: write packet: %s", __func__, strerror(errno)); |
|
|
u_int pid; |
u_int pid; |
|
|
if (muxclient_command == 0) { |
if (muxclient_command == 0) { |
if (stdio_forward_host != NULL) |
if (options.stdio_forward_host != NULL) |
muxclient_command = SSHMUX_COMMAND_STDIO_FWD; |
muxclient_command = SSHMUX_COMMAND_STDIO_FWD; |
else |
else |
muxclient_command = SSHMUX_COMMAND_OPEN; |
muxclient_command = SSHMUX_COMMAND_OPEN; |