version 1.302, 2007/09/04 03:21:03 |
version 1.303, 2007/09/04 11:15:55 |
|
|
char *p, *cp, *line, buf[256]; |
char *p, *cp, *line, buf[256]; |
struct stat st; |
struct stat st; |
struct passwd *pw; |
struct passwd *pw; |
int dummy; |
int dummy, timeout_ms; |
extern int optind, optreset; |
extern int optind, optreset; |
extern char *optarg; |
extern char *optarg; |
struct servent *sp; |
struct servent *sp; |
|
|
if (options.control_path != NULL) |
if (options.control_path != NULL) |
control_client(options.control_path); |
control_client(options.control_path); |
|
|
|
timeout_ms = options.connection_timeout * 1000; |
|
|
/* Open a connection to the remote host. */ |
/* Open a connection to the remote host. */ |
if (ssh_connect(host, &hostaddr, options.port, |
if (ssh_connect(host, &hostaddr, options.port, |
options.address_family, options.connection_attempts, |
options.address_family, options.connection_attempts, &timeout_ms, |
|
options.tcp_keep_alive, |
original_effective_uid == 0 && options.use_privileged_port, |
original_effective_uid == 0 && options.use_privileged_port, |
options.proxy_command) != 0) |
options.proxy_command) != 0) |
exit(255); |
exit(255); |
|
|
|
if (timeout_ms > 0) |
|
debug3("timeout: %d ms remain after connect", timeout_ms); |
|
|
/* |
/* |
* If we successfully made the connection, load the host private key |
* If we successfully made the connection, load the host private key |
* in case we will need it later for combined rsa-rhosts |
* in case we will need it later for combined rsa-rhosts |
|
|
signal(SIGPIPE, SIG_IGN); /* ignore SIGPIPE early */ |
signal(SIGPIPE, SIG_IGN); /* ignore SIGPIPE early */ |
|
|
/* Log into the remote system. This never returns if the login fails. */ |
/* Log into the remote system. This never returns if the login fails. */ |
ssh_login(&sensitive_data, host, (struct sockaddr *)&hostaddr, pw); |
ssh_login(&sensitive_data, host, (struct sockaddr *)&hostaddr, |
|
pw, timeout_ms); |
|
|
/* We no longer need the private host keys. Clear them now. */ |
/* We no longer need the private host keys. Clear them now. */ |
if (sensitive_data.nkeys != 0) { |
if (sensitive_data.nkeys != 0) { |