From 452b645a3774c8c9b9311b4c1cb974ccbf5ad003 Mon Sep 17 00:00:00 2001 From: Daniel Theophanes Date: Mon, 26 Mar 2012 12:44:23 -0400 Subject: [PATCH] go.crypto/ssh: respect adjust window msg on server. R=golang-dev CC=agl, golang-dev https://golang.org/cl/5908048 --- ssh/channel.go | 3 +++ ssh/server.go | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/ssh/channel.go b/ssh/channel.go index 8518d49..28b0e38 100644 --- a/ssh/channel.go +++ b/ssh/channel.go @@ -149,6 +149,9 @@ func (c *channel) handlePacket(packet interface{}) { case *channelEOFMsg: c.theySentEOF = true c.cond.Signal() + case *windowAdjustMsg: + c.theirWindow += packet.AdditionalBytes + c.cond.Signal() default: panic("unknown packet type") } diff --git a/ssh/server.go b/ssh/server.go index 9cefda0..e669b5c 100644 --- a/ssh/server.go +++ b/ssh/server.go @@ -570,6 +570,16 @@ func (s *ServerConn) Accept() (Channel, error) { c.handlePacket(msg) s.lock.Unlock() + case *windowAdjustMsg: + s.lock.Lock() + c, ok := s.channels[msg.PeersId] + if !ok { + s.lock.Unlock() + continue + } + c.handlePacket(msg) + s.lock.Unlock() + case *channelEOFMsg: s.lock.Lock() c, ok := s.channels[msg.PeersId]