From 68a73f537a436bcac578a29963afb294dcd6a0a4 Mon Sep 17 00:00:00 2001 From: djm Date: Mon, 11 Jun 2007 08:33:15 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2007/06/11 08:04:44 [channels.c] send 'window adjust' messages every tree packets and do not wait until 50% of the window is consumed. ok djm dtucker --- ChangeLog | 4 ++++ channels.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3915a4da..fb19daa5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,10 @@ [sshd_config.5] oops, here too: put the MAC list into a display, like we do for ciphers, since groff has trouble with wide lines; + - markus@cvs.openbsd.org 2007/06/11 08:04:44 + [channels.c] + send 'window adjust' messages every tree packets and do not wait + until 50% of the window is consumed. ok djm dtucker - (djm) [configure.ac umac.c] If platform doesn't provide swap32(3), then fallback to provided bit-swizzing functions - (dtucker) [openbsd-compat/bsd-misc.c] According to the spec the "remainder" diff --git a/channels.c b/channels.c index bb14450f..1d5b1f10 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.268 2007/01/03 03:01:40 stevesk Exp $ */ +/* $OpenBSD: channels.c,v 1.269 2007/06/11 08:04:44 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1657,7 +1657,9 @@ channel_check_window(Channel *c) { if (c->type == SSH_CHANNEL_OPEN && !(c->flags & (CHAN_CLOSE_SENT|CHAN_CLOSE_RCVD)) && - c->local_window < c->local_window_max/2 && + ((c->local_window_max - c->local_window < + c->local_maxpacket*3) || + c->local_window < c->local_window_max/2) && c->local_consumed > 0) { packet_start(SSH2_MSG_CHANNEL_WINDOW_ADJUST); packet_put_int(c->remote_id); -- 2.45.1