瀏覽代碼

Prevent nil LocalAddr or RemoteAddr

世界 1 年之前
父節點
當前提交
0ef268637e
共有 2 個文件被更改,包括 4 次插入3 次删除
  1. 1 1
      transport/v2raygrpclite/conn.go
  2. 3 2
      transport/v2raywebsocket/conn.go

+ 1 - 1
transport/v2raygrpclite/conn.go

@@ -143,7 +143,7 @@ func (c *GunConn) LocalAddr() net.Addr {
 }
 }
 
 
 func (c *GunConn) RemoteAddr() net.Addr {
 func (c *GunConn) RemoteAddr() net.Addr {
-	return nil
+	return M.Socksaddr{}
 }
 }
 
 
 func (c *GunConn) SetDeadline(t time.Time) error {
 func (c *GunConn) SetDeadline(t time.Time) error {

+ 3 - 2
transport/v2raywebsocket/conn.go

@@ -14,6 +14,7 @@ import (
 	"github.com/sagernet/sing/common/buf"
 	"github.com/sagernet/sing/common/buf"
 	"github.com/sagernet/sing/common/debug"
 	"github.com/sagernet/sing/common/debug"
 	E "github.com/sagernet/sing/common/exceptions"
 	E "github.com/sagernet/sing/common/exceptions"
+	M "github.com/sagernet/sing/common/metadata"
 	"github.com/sagernet/ws"
 	"github.com/sagernet/ws"
 	"github.com/sagernet/ws/wsutil"
 	"github.com/sagernet/ws/wsutil"
 )
 )
@@ -232,14 +233,14 @@ func (c *EarlyWebsocketConn) Close() error {
 
 
 func (c *EarlyWebsocketConn) LocalAddr() net.Addr {
 func (c *EarlyWebsocketConn) LocalAddr() net.Addr {
 	if c.conn == nil {
 	if c.conn == nil {
-		return nil
+		return M.Socksaddr{}
 	}
 	}
 	return c.conn.LocalAddr()
 	return c.conn.LocalAddr()
 }
 }
 
 
 func (c *EarlyWebsocketConn) RemoteAddr() net.Addr {
 func (c *EarlyWebsocketConn) RemoteAddr() net.Addr {
 	if c.conn == nil {
 	if c.conn == nil {
-		return nil
+		return M.Socksaddr{}
 	}
 	}
 	return c.conn.RemoteAddr()
 	return c.conn.RemoteAddr()
 }
 }