X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/3687d22128ed403489a4e3736c343c2286ae6b34..c91409da0ac0d3fb4a225ab85e14370514e4094e:/ssh.c diff --git a/ssh.c b/ssh.c index a4e45cd8..f75041ba 100644 --- a/ssh.c +++ b/ssh.c @@ -1124,6 +1124,7 @@ static void ssh_gotdata(unsigned char *data, int datalen) static int ssh_receive(Socket skt, int urgent, char *data, int len) { if (!len) { /* Connection has closed. */ + ssh_state = SSH_STATE_CLOSED; sk_close(s); s = NULL; return 0; @@ -1183,7 +1184,7 @@ static char *connect_to_host(char *host, int port, char **realhost) /* * Open socket. */ - s = sk_new(addr, port, ssh_receive); + s = sk_new(addr, port, 0, ssh_receive); if ( (err = sk_socket_error(s)) ) return err; @@ -2278,7 +2279,7 @@ static int do_ssh2_transport(unsigned char *in, int inlen, int ispkt) * Set IVs after keys. */ ssh2_mkkey(K, exchange_hash, 'C', keyspace); cscipher->setcskey(keyspace); - ssh2_mkkey(K, exchange_hash, 'D', keyspace); cscipher->setsckey(keyspace); + ssh2_mkkey(K, exchange_hash, 'D', keyspace); sccipher->setsckey(keyspace); ssh2_mkkey(K, exchange_hash, 'A', keyspace); cscipher->setcsiv(keyspace); ssh2_mkkey(K, exchange_hash, 'B', keyspace); sccipher->setsciv(keyspace); ssh2_mkkey(K, exchange_hash, 'E', keyspace); csmac->setcskey(keyspace);