version 1.74, 2000/05/17 16:57:02 |
version 1.75, 2000/06/17 19:24:34 |
|
|
int connection_out = packet_get_connection_out(); |
int connection_out = packet_get_connection_out(); |
|
|
/* Read other side\'s version identification. */ |
/* Read other side\'s version identification. */ |
for (i = 0; i < sizeof(buf) - 1; i++) { |
for (;;) { |
int len = read(connection_in, &buf[i], 1); |
for (i = 0; i < sizeof(buf) - 1; i++) { |
if (len < 0) |
int len = read(connection_in, &buf[i], 1); |
fatal("ssh_exchange_identification: read: %.100s", strerror(errno)); |
if (len < 0) |
if (len != 1) |
fatal("ssh_exchange_identification: read: %.100s", strerror(errno)); |
fatal("ssh_exchange_identification: Connection closed by remote host"); |
if (len != 1) |
if (buf[i] == '\r') { |
fatal("ssh_exchange_identification: Connection closed by remote host"); |
buf[i] = '\n'; |
if (buf[i] == '\r') { |
buf[i + 1] = 0; |
buf[i] = '\n'; |
continue; /**XXX wait for \n */ |
buf[i + 1] = 0; |
|
continue; /**XXX wait for \n */ |
|
} |
|
if (buf[i] == '\n') { |
|
buf[i + 1] = 0; |
|
break; |
|
} |
} |
} |
if (buf[i] == '\n') { |
buf[sizeof(buf) - 1] = 0; |
buf[i + 1] = 0; |
if (strncmp(buf, "SSH-", 4)) |
break; |
break; |
} |
debug("ssh_exchange_identification: %s", buf); |
} |
} |
buf[sizeof(buf) - 1] = 0; |
|
server_version_string = xstrdup(buf); |
server_version_string = xstrdup(buf); |
|
|
/* |
/* |