浏览代码

terminate connection

v2ray 9 年之前
父节点
当前提交
b8421f659f
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      transport/internet/kcp/connection.go

+ 2 - 1
transport/internet/kcp/connection.go

@@ -365,7 +365,7 @@ func (this *Connection) FetchInputFrom(conn io.Reader) {
 	go func() {
 	go func() {
 		payload := alloc.NewLocalBuffer(2048)
 		payload := alloc.NewLocalBuffer(2048)
 		defer payload.Release()
 		defer payload.Release()
-		for {
+		for this.State() != StateTerminated {
 			payload.Reset()
 			payload.Reset()
 			nBytes, err := conn.Read(payload.Value)
 			nBytes, err := conn.Read(payload.Value)
 			if err != nil {
 			if err != nil {
@@ -391,6 +391,7 @@ func (this *Connection) Terminate() {
 	}
 	}
 	log.Info("KCP|Connection: Terminating connection to ", this.RemoteAddr())
 	log.Info("KCP|Connection: Terminating connection to ", this.RemoteAddr())
 
 
+	this.SetState(StateTerminated)
 	this.writer.Close()
 	this.writer.Close()
 }
 }