ソースを参照

fix memory leak

v2ray 9 年 前
コミット
9434f5156c
1 ファイル変更3 行追加1 行削除
  1. 3 1
      transport/internet/kcp/listener.go

+ 3 - 1
transport/internet/kcp/listener.go

@@ -64,6 +64,7 @@ func (this *Listener) OnReceive(payload *alloc.Buffer, src v2net.Destination) {
 	conn, found := this.sessions[sourceId]
 	if !found {
 		writer := &Writer{
+			id:       sourceId,
 			hub:      this.hub,
 			dest:     src,
 			listener: this,
@@ -135,6 +136,7 @@ func (this *Listener) Addr() net.Addr {
 }
 
 type Writer struct {
+	id       string
 	dest     v2net.Destination
 	hub      *udp.UDPHub
 	listener *Listener
@@ -145,7 +147,7 @@ func (this *Writer) Write(payload []byte) (int, error) {
 }
 
 func (this *Writer) Close() error {
-	this.listener.Remove(this.dest.NetAddr())
+	this.listener.Remove(this.id)
 	return nil
 }