- OpenBSD CVS update
   - [auth-krb4.c]
     -Wall
   - [auth-rh-rsa.c auth-rsa.c hostfile.c hostfile.h key.c key.h match.c]
     [match.h ssh.c ssh.h sshconnect.c sshd.c]
     initial support for DSA keys. ok deraadt@, niels@
   - [cipher.c cipher.h]
     remove unused cipher_attack_detected code
   - [scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh.1 sshd.8]
     Fix some formatting problems I missed before.
   - [ssh.1 sshd.8]
     fix spelling errors, From: FreeBSD
   - [ssh.c]
     switch to raw mode only if he _get_ a pty (not if we _want_ a pty).
diff --git a/ssh.c b/ssh.c
index bada8e1..faba54e 100644
--- a/ssh.c
+++ b/ssh.c
@@ -11,7 +11,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: ssh.c,v 1.21 2000/03/09 10:27:52 damien Exp $");
+RCSID("$Id: ssh.c,v 1.22 2000/03/26 03:04:54 damien Exp $");
 
 #include "xmalloc.h"
 #include "ssh.h"
@@ -181,6 +181,7 @@
 	struct stat st;
 	struct passwd *pw, pwcopy;
 	int interactive = 0, dummy;
+	int have_pty = 0;
 	uid_t original_effective_uid;
 	int plen;
 
@@ -618,9 +619,6 @@
 	if (host_private_key_loaded)
 		RSA_free(host_private_key);	/* Destroys contents safely */
 
-	/* Close connection cleanly after attack. */
-	cipher_attack_detected = packet_disconnect;
-
 	/* Enable compression if requested. */
 	if (options.compression) {
 		debug("Requesting compression at level %d.", options.compression_level);
@@ -672,9 +670,10 @@
 
 		/* Read response from the server. */
 		type = packet_read(&plen);
-		if (type == SSH_SMSG_SUCCESS)
+		if (type == SSH_SMSG_SUCCESS) {
 			interactive = 1;
-		else if (type == SSH_SMSG_FAILURE)
+			have_pty = 1;
+		} else if (type == SSH_SMSG_FAILURE)
 			log("Warning: Remote host failed or refused to allocate a pseudo tty.");
 		else
 			packet_disconnect("Protocol error waiting for pty request response.");
@@ -802,7 +801,7 @@
 	}
 
 	/* Enter the interactive session. */
-	exit_status = client_loop(tty_flag, tty_flag ? options.escape_char : -1);
+	exit_status = client_loop(have_pty, tty_flag ? options.escape_char : -1);
 
 	/* Close the connection to the remote host. */
 	packet_close();