version 1.44.2.1, 2004/02/28 03:51:34 |
version 1.44.2.2, 2004/08/19 22:37:32 |
|
|
"ssh-dss": "ssh-rsa"; |
"ssh-dss": "ssh-rsa"; |
c->c_kex = kex_setup(myproposal); |
c->c_kex = kex_setup(myproposal); |
c->c_kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; |
c->c_kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; |
|
c->c_kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; |
c->c_kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; |
c->c_kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; |
c->c_kex->verify_host_key = hostjump; |
c->c_kex->verify_host_key = hostjump; |
|
|
|
|
error("socket: %s", strerror(errno)); |
error("socket: %s", strerror(errno)); |
continue; |
continue; |
} |
} |
if (fcntl(s, F_SETFL, O_NONBLOCK) < 0) |
if (set_nonblock(s) == -1) |
fatal("F_SETFL: %s", strerror(errno)); |
fatal("%s: set_nonblock(%d)", __func__, s); |
if (connect(s, ai->ai_addr, ai->ai_addrlen) < 0 && |
if (connect(s, ai->ai_addr, ai->ai_addrlen) < 0 && |
errno != EINPROGRESS) |
errno != EINPROGRESS) |
error("connect (`%s'): %s", host, strerror(errno)); |
error("connect (`%s'): %s", host, strerror(errno)); |
|
|
static void |
static void |
congreet(int s) |
congreet(int s) |
{ |
{ |
int remote_major, remote_minor, n = 0; |
int remote_major = 0, remote_minor = 0, n = 0; |
char buf[256], *cp; |
char buf[256], *cp; |
char remote_version[sizeof buf]; |
char remote_version[sizeof buf]; |
size_t bufsiz; |
size_t bufsiz; |
|
|
|
|
bufsiz = sizeof(buf); |
bufsiz = sizeof(buf); |
cp = buf; |
cp = buf; |
while (bufsiz-- && (n = read(s, cp, 1)) == 1 && *cp != '\n') { |
while (bufsiz-- && (n = atomicio(read, s, cp, 1)) == 1 && *cp != '\n') { |
if (*cp == '\r') |
if (*cp == '\r') |
*cp = '\n'; |
*cp = '\n'; |
cp++; |
cp++; |
|
|
congreet(s); |
congreet(s); |
return; |
return; |
} |
} |
n = read(s, c->c_data + c->c_off, c->c_len - c->c_off); |
n = atomicio(read, s, c->c_data + c->c_off, c->c_len - c->c_off); |
if (n < 0) { |
if (n < 0) { |
error("read (%s): %s", c->c_name, strerror(errno)); |
error("read (%s): %s", c->c_name, strerror(errno)); |
confree(s); |
confree(s); |