- OpenBSD CVS update
  - markus@cvs.openbsd.org
    [cipher.h myproposal.h readconf.c readconf.h servconf.c ssh.1 ssh.c]
    [ssh.h sshconnect1.c sshconnect2.c sshd.8]
    - complain about invalid ciphers in SSH1 (e.g. arcfour is SSH2 only)
  - hugh@cvs.openbsd.org
    [ssh.1]
    - zap typo
    [ssh-keygen.1]
    - One last nit fix. (markus approved)
    [sshd.8]
    - some markus certified spelling adjustments
  - markus@cvs.openbsd.org
    [auth2.c channels.c clientloop.c compat compat.h dsa.c kex.c]
    [sshconnect2.c ]
    - bug compat w/ ssh-2.0.13 x11, split out bugs
    [nchan.c]
    - no drain if ibuf_empty, fixes x11fwd problems; tests by fries@
    [ssh-keygen.c]
    - handle escapes in real and original key format, ok millert@
    [version.h]
    - OpenSSH-2.1
diff --git a/compat.c b/compat.c
index 3bf45c1..00f031b 100644
--- a/compat.c
+++ b/compat.c
@@ -28,7 +28,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: compat.c,v 1.9 2000/04/29 13:57:10 damien Exp $");
+RCSID("$Id: compat.c,v 1.10 2000/05/09 01:03:00 damien Exp $");
 
 #include "ssh.h"
 #include "packet.h"
@@ -57,17 +57,20 @@
 {
 	int i;
 	size_t len;
-	static const char *check[] = {
-		"2.0.1",
-		"2.1.0",
-		NULL
+	struct {
+		char	*version;
+		int	bugs;
+	} check[] = {
+		{"2.1.0",	SSH_BUG_SIGBLOB|SSH_BUG_HMAC},
+		{"2.0.1",	SSH_BUG_SIGBLOB|SSH_BUG_HMAC|SSH_BUG_PUBKEYAUTH|SSH_BUG_X11FWD},
+		{NULL,		0}
 	};
-	for (i = 0; check[i]; i++) {
-		len = strlen(check[i]);
+	for (i = 0; check[i].version; i++) {
+		len = strlen(check[i].version);
 		if (strlen(version) >= len &&
-		   (strncmp(version, check[i], len) == 0)) {
+		   (strncmp(version, check[i].version, len) == 0)) {
 			verbose("datafellows: %.200s", version);
-			datafellows = 1;
+			datafellows = check[i].bugs;
 			return;
 		}
 	}