From d716d02cd830647b2a57b3d709eb9c36975841d7 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Wed, 7 Dec 2016 00:31:01 +0100 Subject: [PATCH] correctly handle sending window length --- transport/internet/kcp/sending.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/transport/internet/kcp/sending.go b/transport/internet/kcp/sending.go index 8bcee9af..1159f6c5 100644 --- a/transport/internet/kcp/sending.go +++ b/transport/internet/kcp/sending.go @@ -40,6 +40,7 @@ func (v *SendingWindow) Release() { if v == nil { return } + v.len = 0 for _, seg := range v.data { seg.Release() } @@ -135,6 +136,10 @@ func (v *SendingWindow) HandleFastAck(number uint32, rto uint32) { } func (v *SendingWindow) Visit(visitor func(seg *DataSegment) bool) { + if v.IsEmpty() { + return + } + for i := v.start; ; i = v.next[i] { if !visitor(&v.data[i]) || i == v.last { break