version 1.13, 2000/05/08 17:42:24 |
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 = xstrdup(spec); |
char *s, *p, *q; |
char *p; |
|
int ret = SSH_PROTO_UNKNOWN; |
int ret = SSH_PROTO_UNKNOWN; |
|
|
for ((p = strtok(s, SEP)); p; (p = strtok(NULL, SEP))) { |
if (spec == NULL) |
|
return ret; |
|
q = s = xstrdup(spec); |
|
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) |