summaryrefslogtreecommitdiffstats
path: root/channels.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2007-06-11 18:33:15 +1000
committerDamien Miller <djm@mindrot.org>2007-06-11 18:33:15 +1000
commit3191a8e8ba454c0cc27fa8a24a9eed87cd111e4b (patch)
treef720393f7da9453a0d73722916d2fb730d115eae /channels.c
parent725286e2239ad3a2f918602a40bd43a94739e6d6 (diff)
- 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
Diffstat (limited to 'channels.c')
-rw-r--r--channels.c6
1 files changed, 4 insertions, 2 deletions
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 <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, 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);