From b8421f659fc910714da59990fe85cc69dc1eb2d4 Mon Sep 17 00:00:00 2001 From: v2ray Date: Fri, 29 Jul 2016 11:49:53 +0200 Subject: [PATCH] terminate connection --- transport/internet/kcp/connection.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/transport/internet/kcp/connection.go b/transport/internet/kcp/connection.go index d1cc34ce1..c86fe6e6c 100644 --- a/transport/internet/kcp/connection.go +++ b/transport/internet/kcp/connection.go @@ -365,7 +365,7 @@ func (this *Connection) FetchInputFrom(conn io.Reader) { go func() { payload := alloc.NewLocalBuffer(2048) defer payload.Release() - for { + for this.State() != StateTerminated { payload.Reset() nBytes, err := conn.Read(payload.Value) if err != nil { @@ -391,6 +391,7 @@ func (this *Connection) Terminate() { } log.Info("KCP|Connection: Terminating connection to ", this.RemoteAddr()) + this.SetState(StateTerminated) this.writer.Close() }