version 1.13.2.1, 2000/06/12 02:37:33 |
version 1.13.2.2, 2000/09/01 18:23:19 |
|
|
*/ |
*/ |
|
|
#include "includes.h" |
#include "includes.h" |
RCSID("$Id$"); |
RCSID("$OpenBSD$"); |
|
|
#include "ssh.h" |
#include "ssh.h" |
#include "packet.h" |
#include "packet.h" |
|
|
} check[] = { |
} check[] = { |
{"2.1.0", SSH_BUG_SIGBLOB|SSH_BUG_HMAC}, |
{"2.1.0", SSH_BUG_SIGBLOB|SSH_BUG_HMAC}, |
{"2.0.1", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|SSH_BUG_PUBKEYAUTH|SSH_BUG_X11FWD}, |
{"2.0.1", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|SSH_BUG_PUBKEYAUTH|SSH_BUG_X11FWD}, |
|
{"2.", SSH_BUG_HMAC|SSH_COMPAT_SESSIONID_ENCODING}, |
{NULL, 0} |
{NULL, 0} |
}; |
}; |
|
/* process table, return first match */ |
for (i = 0; check[i].version; i++) { |
for (i = 0; check[i].version; i++) { |
len = strlen(check[i].version); |
len = strlen(check[i].version); |
if (strlen(version) >= len && |
if (strlen(version) >= len && |
|
|
int |
int |
proto_spec(const char *spec) |
proto_spec(const char *spec) |
{ |
{ |
char *s, *p; |
char *s, *p, *q; |
int ret = SSH_PROTO_UNKNOWN; |
int ret = SSH_PROTO_UNKNOWN; |
|
|
if (spec == NULL) |
if (spec == NULL) |
return ret; |
return ret; |
s = xstrdup(spec); |
q = s = xstrdup(spec); |
for ((p = strtok(s, SEP)); p; (p = strtok(NULL, SEP))) { |
for ((p = strsep(&q, SEP)); p && *p != '\0'; (p = strsep(&q, SEP))) { |
switch(atoi(p)) { |
switch(atoi(p)) { |
case 1: |
case 1: |
if (ret == SSH_PROTO_UNKNOWN) |
if (ret == SSH_PROTO_UNKNOWN) |