@@ -300,34 +300,6 @@ func (c *Common) initContext() {
300300 c .ctx , c .cancel = context .WithCancel (context .Background ())
301301}
302302
303- // initTargetListener 初始化目标监听器
304- func (c * Common ) initTargetListener () error {
305- if c .targetTCPAddr == nil || c .targetUDPAddr == nil {
306- return & net.AddrError {Err : "target address is nil" }
307- }
308-
309- // 初始化目标TCP监听器
310- targetListener , err := net .ListenTCP ("tcp" , c .targetTCPAddr )
311- if err != nil {
312- if targetListener != nil {
313- targetListener .Close ()
314- }
315- return err
316- }
317- c .targetListener = targetListener
318-
319- // 初始化目标UDP监听器
320- var targetUDPConn net.Conn
321- targetUDPConn , err = net .ListenUDP ("udp" , c .targetUDPAddr )
322- if err != nil {
323- return err
324- }
325- c .targetUDPConn = targetUDPConn .(* net.UDPConn )
326- targetUDPConn = & conn.StatConn {Conn : targetUDPConn , RX : & c .udpRX , TX : & c .udpTX , Rate : c .rateLimiter }
327-
328- return nil
329- }
330-
331303// initTunnelListener 初始化隧道监听器
332304func (c * Common ) initTunnelListener () error {
333305 if c .tunnelTCPAddr == nil || c .tunnelUDPAddr == nil {
@@ -357,6 +329,34 @@ func (c *Common) initTunnelListener() error {
357329 return nil
358330}
359331
332+ // initTargetListener 初始化目标监听器
333+ func (c * Common ) initTargetListener () error {
334+ if c .targetTCPAddr == nil || c .targetUDPAddr == nil {
335+ return & net.AddrError {Err : "target address is nil" }
336+ }
337+
338+ // 初始化目标TCP监听器
339+ targetListener , err := net .ListenTCP ("tcp" , c .targetTCPAddr )
340+ if err != nil {
341+ if targetListener != nil {
342+ targetListener .Close ()
343+ }
344+ return err
345+ }
346+ c .targetListener = targetListener
347+
348+ // 初始化目标UDP监听器
349+ var targetUDPConn net.Conn
350+ targetUDPConn , err = net .ListenUDP ("udp" , c .targetUDPAddr )
351+ if err != nil {
352+ return err
353+ }
354+ c .targetUDPConn = targetUDPConn .(* net.UDPConn )
355+ targetUDPConn = & conn.StatConn {Conn : targetUDPConn , RX : & c .udpRX , TX : & c .udpTX , Rate : c .rateLimiter }
356+
357+ return nil
358+ }
359+
360360// drain 清空通道中的所有元素
361361func drain [T any ](ch <- chan T ) {
362362 for {
0 commit comments