[clientloop.c packet.c serverloop.c]
     Revert the change for bz #1307 as it causes connection aborts if an IGNORE
     packet arrives while we're waiting in packet_read_expect (and possibly
     elsewhere).
This commit is contained in:
Damien Miller 2008-02-10 22:27:47 +11:00
parent acdf25b31f
commit 5ed3d575f9
4 changed files with 15 additions and 19 deletions

View File

@ -58,6 +58,11 @@
[sftp-client.c] [sftp-client.c]
when a remote write error occurs during an upload, ensure that ACKs for when a remote write error occurs during an upload, ensure that ACKs for
all issued requests are properly drained. patch from t8m AT centrum.cz all issued requests are properly drained. patch from t8m AT centrum.cz
- dtucker@cvs.openbsd.org 2008/01/23 01:56:54
[clientloop.c packet.c serverloop.c]
Revert the change for bz #1307 as it causes connection aborts if an IGNORE
packet arrives while we're waiting in packet_read_expect (and possibly
elsewhere).
20080119 20080119
- (djm) Silence noice from expr in ssh-copy-id; patch from - (djm) Silence noice from expr in ssh-copy-id; patch from
@ -3586,4 +3591,4 @@
OpenServer 6 and add osr5bigcrypt support so when someone migrates OpenServer 6 and add osr5bigcrypt support so when someone migrates
passwords between UnixWare and OpenServer they will still work. OK dtucker@ passwords between UnixWare and OpenServer they will still work. OK dtucker@
$Id: ChangeLog,v 1.4831 2008/02/10 11:27:24 djm Exp $ $Id: ChangeLog,v 1.4832 2008/02/10 11:27:47 djm Exp $

View File

@ -1,4 +1,4 @@
/* $OpenBSD: clientloop.c,v 1.186 2008/01/19 20:48:53 djm Exp $ */ /* $OpenBSD: clientloop.c,v 1.187 2008/01/23 01:56:54 dtucker Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -464,12 +464,6 @@ client_check_window_change(void)
} }
} }
static void
client_global_keepalive(int type, u_int32_t seq, void *ctxt)
{
server_alive_timeouts = 0;
}
static void static void
client_global_request_reply(int type, u_int32_t seq, void *ctxt) client_global_request_reply(int type, u_int32_t seq, void *ctxt)
{ {
@ -2083,8 +2077,6 @@ client_init_dispatch_20(void)
/* global request reply messages */ /* global request reply messages */
dispatch_set(SSH2_MSG_REQUEST_FAILURE, &client_global_request_reply); dispatch_set(SSH2_MSG_REQUEST_FAILURE, &client_global_request_reply);
dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &client_global_request_reply); dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &client_global_request_reply);
dispatch_set(SSH2_MSG_IGNORE, &client_global_keepalive);
dispatch_set(SSH2_MSG_UNIMPLEMENTED, &client_global_keepalive);
} }
static void static void
client_init_dispatch_13(void) client_init_dispatch_13(void)

View File

@ -1,4 +1,4 @@
/* $OpenBSD: packet.c,v 1.149 2007/12/28 15:32:24 dtucker Exp $ */ /* $OpenBSD: packet.c,v 1.150 2008/01/23 01:56:54 dtucker Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -968,10 +968,9 @@ packet_read_expect(int expected_type)
* packet_process_incoming. If so, reads the packet; otherwise returns * packet_process_incoming. If so, reads the packet; otherwise returns
* SSH_MSG_NONE. This does not wait for data from the connection. * SSH_MSG_NONE. This does not wait for data from the connection.
* *
* SSH_MSG_DISCONNECT is handled specially here. Also, SSH_MSG_IGNORE * SSH_MSG_DISCONNECT is handled specially here. Also,
* messages are skipped by this function and are never returned * SSH_MSG_IGNORE messages are skipped by this function and are never returned
* to higher levels, although SSH2_MSG_IGNORE are since they are needed * to higher levels.
* for keepalives.
*/ */
static int static int
@ -1196,6 +1195,8 @@ packet_read_poll_seqnr(u_int32_t *seqnr_p)
if (type) if (type)
DBG(debug("received packet type %d", type)); DBG(debug("received packet type %d", type));
switch (type) { switch (type) {
case SSH2_MSG_IGNORE:
break;
case SSH2_MSG_DEBUG: case SSH2_MSG_DEBUG:
packet_get_char(); packet_get_char();
msg = packet_get_string(NULL); msg = packet_get_string(NULL);
@ -1216,7 +1217,7 @@ packet_read_poll_seqnr(u_int32_t *seqnr_p)
seqnr = packet_get_int(); seqnr = packet_get_int();
debug("Received SSH2_MSG_UNIMPLEMENTED for %u", debug("Received SSH2_MSG_UNIMPLEMENTED for %u",
seqnr); seqnr);
/* FALLTHROUGH */ break;
default: default:
return type; return type;
} }

View File

@ -1,4 +1,4 @@
/* $OpenBSD: serverloop.c,v 1.146 2007/12/28 15:32:24 dtucker Exp $ */ /* $OpenBSD: serverloop.c,v 1.147 2008/01/23 01:56:54 dtucker Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -1193,8 +1193,6 @@ server_init_dispatch_20(void)
dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive); dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive);
dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive); dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive);
dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive); dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive);
dispatch_set(SSH2_MSG_IGNORE, &server_input_keep_alive);
dispatch_set(SSH2_MSG_UNIMPLEMENTED, &server_input_keep_alive);
/* rekeying */ /* rekeying */
dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit); dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit);
} }