Skip to content

Commit 8f2a2c1

Browse files
authored
fix(common): remove unused tunnelAddr field and improve address validation in initTargetListener and initTunnelListener
1 parent 07b717c commit 8f2a2c1

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

internal/common.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ type Common struct {
2929
runMode string // 运行模式
3030
dataFlow string // 数据流向
3131
tunnelKey string // 隧道密钥
32-
tunnelAddr string // 隧道地址字符串
3332
tunnelTCPAddr *net.TCPAddr // 隧道TCP地址
3433
tunnelUDPAddr *net.UDPAddr // 隧道UDP地址
3534
targetTCPAddr *net.TCPAddr // 目标TCP地址
@@ -180,17 +179,17 @@ func (c *Common) getTunnelKey(parsedURL *url.URL) {
180179
// getAddress 解析和设置地址信息
181180
func (c *Common) getAddress(parsedURL *url.URL) {
182181
// 解析隧道地址
183-
c.tunnelAddr = parsedURL.Host
182+
tunnelAddr := parsedURL.Host
184183

185184
// 解析隧道TCP地址
186-
if tunnelTCPAddr, err := net.ResolveTCPAddr("tcp", c.tunnelAddr); err == nil {
185+
if tunnelTCPAddr, err := net.ResolveTCPAddr("tcp", tunnelAddr); err == nil {
187186
c.tunnelTCPAddr = tunnelTCPAddr
188187
} else {
189188
c.logger.Error("ResolveTCPAddr failed: %v", err)
190189
}
191190

192191
// 解析隧道UDP地址
193-
if tunnelUDPAddr, err := net.ResolveUDPAddr("udp", c.tunnelAddr); err == nil {
192+
if tunnelUDPAddr, err := net.ResolveUDPAddr("udp", tunnelAddr); err == nil {
194193
c.tunnelUDPAddr = tunnelUDPAddr
195194
} else {
196195
c.logger.Error("ResolveUDPAddr failed: %v", err)
@@ -303,6 +302,10 @@ func (c *Common) initContext() {
303302

304303
// initTargetListener 初始化目标监听器
305304
func (c *Common) initTargetListener() error {
305+
if c.targetTCPAddr == nil || c.targetUDPAddr == nil {
306+
return &net.AddrError{Err: "target address is nil"}
307+
}
308+
306309
// 初始化目标TCP监听器
307310
targetListener, err := net.ListenTCP("tcp", c.targetTCPAddr)
308311
if err != nil {
@@ -327,6 +330,10 @@ func (c *Common) initTargetListener() error {
327330

328331
// initTunnelListener 初始化隧道监听器
329332
func (c *Common) initTunnelListener() error {
333+
if c.tunnelTCPAddr == nil || c.tunnelUDPAddr == nil {
334+
return &net.AddrError{Err: "tunnel address is nil"}
335+
}
336+
330337
// 初始化隧道TCP监听器
331338
tunnelListener, err := net.ListenTCP("tcp", c.tunnelTCPAddr)
332339
if err != nil {

0 commit comments

Comments
 (0)