version 1.99.2.5, 2003/04/03 22:35:17 |
version 1.100, 2002/04/22 21:04:52 |
|
|
int local = 0; |
int local = 0; |
|
|
leave_raw_mode(); |
leave_raw_mode(); |
handler = signal(SIGINT, SIG_IGN); |
handler = signal(SIGINT, SIG_IGN); |
cmd = s = read_passphrase("\r\nssh> ", RP_ECHO); |
cmd = s = read_passphrase("\r\nssh> ", RP_ECHO); |
if (s == NULL) |
if (s == NULL) |
goto out; |
goto out; |
|
|
snprintf(string, sizeof string, |
snprintf(string, sizeof string, |
"%c?\r\n\ |
"%c?\r\n\ |
Supported escape sequences:\r\n\ |
Supported escape sequences:\r\n\ |
%c. - terminate connection\r\n\ |
~. - terminate connection\r\n\ |
%cC - open a command line\r\n\ |
~C - open a command line\r\n\ |
%cR - Request rekey (SSH protocol 2 only)\r\n\ |
~R - Request rekey (SSH protocol 2 only)\r\n\ |
%c^Z - suspend ssh\r\n\ |
~^Z - suspend ssh\r\n\ |
%c# - list forwarded connections\r\n\ |
~# - list forwarded connections\r\n\ |
%c& - background ssh (when waiting for connections to terminate)\r\n\ |
~& - background ssh (when waiting for connections to terminate)\r\n\ |
%c? - this message\r\n\ |
~? - this message\r\n\ |
%c%c - send the escape character by typing it twice\r\n\ |
~~ - send the escape character by typing it twice\r\n\ |
(Note that escapes are only recognized immediately after newline.)\r\n", |
(Note that escapes are only recognized immediately after newline.)\r\n", |
escape_char, escape_char, escape_char, escape_char, |
escape_char); |
escape_char, escape_char, escape_char, escape_char, |
|
escape_char, escape_char); |
|
buffer_append(berr, string, strlen(string)); |
buffer_append(berr, string, strlen(string)); |
continue; |
continue; |
|
|
|
|
|
|
client_init_dispatch(); |
client_init_dispatch(); |
|
|
/* |
/* Set signal handlers to restore non-blocking mode. */ |
* Set signal handlers, (e.g. to restore non-blocking mode) |
signal(SIGINT, signal_handler); |
* but don't overwrite SIG_IGN, matches behaviour from rsh(1) |
signal(SIGQUIT, signal_handler); |
*/ |
signal(SIGTERM, signal_handler); |
if (signal(SIGINT, SIG_IGN) != SIG_IGN) |
|
signal(SIGINT, signal_handler); |
|
if (signal(SIGQUIT, SIG_IGN) != SIG_IGN) |
|
signal(SIGQUIT, signal_handler); |
|
if (signal(SIGTERM, SIG_IGN) != SIG_IGN) |
|
signal(SIGTERM, signal_handler); |
|
if (have_pty) |
if (have_pty) |
signal(SIGWINCH, window_change_handler); |
signal(SIGWINCH, window_change_handler); |
|
|
|
|
static Channel * |
static Channel * |
client_request_forwarded_tcpip(const char *request_type, int rchan) |
client_request_forwarded_tcpip(const char *request_type, int rchan) |
{ |
{ |
Channel *c = NULL; |
Channel* c = NULL; |
char *listen_address, *originator_address; |
char *listen_address, *originator_address; |
int listen_port, originator_port; |
int listen_port, originator_port; |
int sock; |
int sock; |
|
|
return c; |
return c; |
} |
} |
|
|
static Channel * |
static Channel* |
client_request_x11(const char *request_type, int rchan) |
client_request_x11(const char *request_type, int rchan) |
{ |
{ |
Channel *c = NULL; |
Channel *c = NULL; |
|
|
return c; |
return c; |
} |
} |
|
|
static Channel * |
static Channel* |
client_request_agent(const char *request_type, int rchan) |
client_request_agent(const char *request_type, int rchan) |
{ |
{ |
Channel *c = NULL; |
Channel *c = NULL; |
|
|
{ |
{ |
Channel *c = NULL; |
Channel *c = NULL; |
char *ctype; |
char *ctype; |
|
u_int len; |
int rchan; |
int rchan; |
u_int rmaxpack, rwindow, len; |
int rmaxpack; |
|
int rwindow; |
|
|
ctype = packet_get_string(&len); |
ctype = packet_get_string(&len); |
rchan = packet_get_int(); |
rchan = packet_get_int(); |