Skip to content

Commit 0f99e3c

Browse files
made variables naming more consistent
1 parent 496f8e9 commit 0f99e3c

File tree

1 file changed

+29
-36
lines changed

1 file changed

+29
-36
lines changed

tproxy_udp_linux.go

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ var googleDNSAddr *net.UDPAddr = &net.UDPAddr{IP: net.ParseIP("8.8.8.8"), Port:
3434

3535
type udpConn struct {
3636
*socks5.UDPConn
37-
clientAddr *net.UDPAddr
38-
dstAddr *net.UDPAddr
39-
lastSeen time.Time
40-
written atomic.Uint64
37+
srcAddr *net.UDPAddr
38+
dstAddr *net.UDPAddr
39+
lastSeen time.Time
40+
written atomic.Uint64
4141
}
4242

43-
func newUDPConn(clientAddr *net.UDPAddr, dstAddr *net.UDPAddr, sockDialer *socks5.Dialer) (*udpConn, error) {
43+
func newUDPConn(srcAddr *net.UDPAddr, dstAddr *net.UDPAddr, sockDialer *socks5.Dialer) (*udpConn, error) {
4444
ctx, cancel := context.WithTimeout(context.Background(), timeout)
4545
defer cancel()
4646
conn, err := sockDialer.DialContext(ctx, "udp4", dstAddr.String())
@@ -51,7 +51,7 @@ func newUDPConn(clientAddr *net.UDPAddr, dstAddr *net.UDPAddr, sockDialer *socks
5151
if !ok {
5252
return nil, fmt.Errorf("failed obtaining relay connection")
5353
}
54-
return &udpConn{UDPConn: relayConn, clientAddr: clientAddr, dstAddr: dstAddr, lastSeen: time.Now()}, nil
54+
return &udpConn{UDPConn: relayConn, srcAddr: srcAddr, dstAddr: dstAddr, lastSeen: time.Now()}, nil
5555
}
5656

5757
type udpConnections struct {
@@ -63,20 +63,20 @@ type udpConnections struct {
6363

6464
func (ucs *udpConnections) Add(conn *udpConn) {
6565
ucs.Lock()
66-
ucs.clients[fmt.Sprintf("%s,%s", conn.clientAddr, conn.dstAddr)] = conn
66+
ucs.clients[fmt.Sprintf("%s,%s", conn.srcAddr, conn.dstAddr)] = conn
6767
ucs.Unlock()
6868
}
6969

70-
func (ucs *udpConnections) Get(clientAddr, dstAddr *net.UDPAddr) (*udpConn, bool) {
70+
func (ucs *udpConnections) Get(srcAddr, dstAddr *net.UDPAddr) (*udpConn, bool) {
7171
ucs.RLock()
7272
defer ucs.RUnlock()
73-
conn, ok := ucs.clients[fmt.Sprintf("%s,%s", clientAddr, dstAddr)]
73+
conn, ok := ucs.clients[fmt.Sprintf("%s,%s", srcAddr, dstAddr)]
7474
return conn, ok
7575
}
7676

7777
func (ucs *udpConnections) Remove(conn *udpConn) {
7878
ucs.Lock()
79-
delete(ucs.clients, fmt.Sprintf("%s,%s", conn.clientAddr, conn.dstAddr))
79+
delete(ucs.clients, fmt.Sprintf("%s,%s", conn.srcAddr, conn.dstAddr))
8080
ucs.Unlock()
8181
}
8282

@@ -288,13 +288,9 @@ func (tsu *tproxyServerUDP) handleConnection(conn *udpConn) {
288288
tsu.wg.Add(1)
289289
buf := make([]byte, udpBufferSize)
290290
defer func() {
291-
srcConnStr := fmt.Sprintf("%s→ %s", conn.clientAddr, conn.dstAddr)
291+
srcConnStr := fmt.Sprintf("%s→ %s", conn.srcAddr, conn.dstAddr)
292292
dstConnStr := fmt.Sprintf("%s→ %s→ %s", tsu.conn.LocalAddr(), conn.LocalAddr(), conn.dstAddr)
293-
tsu.p.logger.Debug().Msgf("[udp %s] Copied %s for src: %s - dst: %s",
294-
tsu.p.tproxyMode,
295-
prettifyBytes(int64(conn.written.Load())),
296-
srcConnStr,
297-
dstConnStr)
293+
tsu.p.logger.Debug().Msgf("Copied %s for udp src: %s - dst: %s", prettifyBytes(int64(conn.written.Load())), srcConnStr, dstConnStr)
298294
}()
299295
readLoop:
300296
for {
@@ -314,10 +310,10 @@ readLoop:
314310
if nr > 0 {
315311
er := tsu.conn.SetWriteDeadline(time.Now().Add(writeTimeoutUDP))
316312
if er != nil {
317-
tsu.p.logger.Debug().Err(er).Msgf("[udp %s] Failed setting write deadline %s→ %s", tsu.p.tproxyMode, tsu.conn.LocalAddr(), conn.clientAddr)
313+
tsu.p.logger.Debug().Err(er).Msgf("[udp %s] Failed setting write deadline %s→ %s", tsu.p.tproxyMode, tsu.conn.LocalAddr(), conn.srcAddr)
318314
break readLoop
319315
}
320-
nw, ew := tsu.conn.WriteToUDP(buf[0:nr], conn.clientAddr)
316+
nw, ew := tsu.conn.WriteToUDP(buf[0:nr], conn.srcAddr)
321317
if nw < 0 || nr < nw {
322318
nw = 0
323319
if ew == nil {
@@ -334,7 +330,7 @@ readLoop:
334330
}
335331
}
336332
if nr != nw {
337-
tsu.p.logger.Debug().Err(io.ErrShortWrite).Msgf("[udp %s] Failed sending message %s→ %s", tsu.p.tproxyMode, tsu.conn.LocalAddr(), conn.clientAddr)
333+
tsu.p.logger.Debug().Err(io.ErrShortWrite).Msgf("[udp %s] Failed sending message %s→ %s", tsu.p.tproxyMode, tsu.conn.LocalAddr(), conn.srcAddr)
338334
break readLoop
339335
}
340336
}
@@ -358,11 +354,12 @@ readLoop:
358354

359355
type dnsConn struct {
360356
*net.UDPConn
361-
clientAddr *net.UDPAddr
362-
written atomic.Uint64
357+
srcAddr *net.UDPAddr
358+
dstAddr *net.UDPAddr
359+
written atomic.Uint64
363360
}
364361

365-
func newDNSConn(clientAddr *net.UDPAddr, mark uint) (*dnsConn, error) {
362+
func newDNSConn(srcAddr *net.UDPAddr, mark uint) (*dnsConn, error) {
366363
dialer := getBaseDialer(timeout, mark)
367364
ctx, cancel := context.WithTimeout(context.Background(), timeout)
368365
defer cancel()
@@ -374,7 +371,7 @@ func newDNSConn(clientAddr *net.UDPAddr, mark uint) (*dnsConn, error) {
374371
if !ok {
375372
return nil, fmt.Errorf("failed obtaining dns connection")
376373
}
377-
return &dnsConn{UDPConn: udpConn, clientAddr: clientAddr}, nil
374+
return &dnsConn{UDPConn: udpConn, srcAddr: srcAddr, dstAddr: googleDNSAddr}, nil
378375
}
379376

380377
func (tsu *tproxyServerUDP) listenAndServeDNS() {
@@ -401,7 +398,7 @@ func (tsu *tproxyServerUDP) listenAndServeDNS() {
401398
continue
402399
}
403400
srcConnStr := fmt.Sprintf("%s→ %s", srcAddr, tsu.gwConn.LocalAddr())
404-
dstConnStr := fmt.Sprintf("%s→ %s→ %s", conn.LocalAddr(), tsu.gwConn.LocalAddr(), googleDNSAddr)
401+
dstConnStr := fmt.Sprintf("%s→ %s→ %s", conn.LocalAddr(), tsu.gwConn.LocalAddr(), conn.dstAddr)
405402
tsu.p.logger.Debug().Msgf("[udp %s] src: %s - dst: %s", tsu.p.tproxyMode, srcConnStr, dstConnStr)
406403
err = conn.SetWriteDeadline(time.Now().Add(writeTimeoutUDP))
407404
if err != nil {
@@ -419,7 +416,7 @@ func (tsu *tproxyServerUDP) listenAndServeDNS() {
419416
if errors.Is(err, net.ErrClosed) {
420417
continue
421418
}
422-
tsu.p.logger.Error().Err(err).Msgf("[udp %s] Failed sending message %s→ %s", tsu.p.tproxyMode, conn.LocalAddr(), googleDNSAddr)
419+
tsu.p.logger.Error().Err(err).Msgf("[udp %s] Failed sending message %s→ %s", tsu.p.tproxyMode, conn.LocalAddr(), conn.dstAddr)
423420
continue
424421
}
425422
conn.written.Add(uint64(nw))
@@ -448,13 +445,9 @@ func (tsu *tproxyServerUDP) listenAndServeDNS() {
448445
func (tsu *tproxyServerUDP) handleDNSConnection(conn *dnsConn) {
449446
tsu.wg.Add(1)
450447
defer func() {
451-
srcConnStr := fmt.Sprintf("%s→ %s", conn.clientAddr, tsu.gwConn.LocalAddr())
452-
dstConnStr := fmt.Sprintf("%s→ %s→ %s", conn.LocalAddr(), tsu.gwConn.LocalAddr(), googleDNSAddr)
453-
tsu.p.logger.Debug().Msgf("[udp %s] Copied %s for src: %s - dst: %s",
454-
tsu.p.tproxyMode,
455-
prettifyBytes(int64(conn.written.Load())),
456-
srcConnStr,
457-
dstConnStr)
448+
srcConnStr := fmt.Sprintf("%s→ %s", conn.srcAddr, tsu.gwConn.LocalAddr())
449+
dstConnStr := fmt.Sprintf("%s→ %s→ %s", conn.LocalAddr(), tsu.gwConn.LocalAddr(), conn.dstAddr)
450+
tsu.p.logger.Debug().Msgf("Copied %s for udp src: %s - dst: %s", prettifyBytes(int64(conn.written.Load())), srcConnStr, dstConnStr)
458451
conn.Close()
459452
}()
460453
buf := make([]byte, udpBufferSize)
@@ -463,7 +456,7 @@ func (tsu *tproxyServerUDP) handleDNSConnection(conn *dnsConn) {
463456
if errors.Is(er, net.ErrClosed) {
464457
return
465458
}
466-
tsu.p.logger.Debug().Err(er).Msgf("[udp %s] Failed setting read deadline %s→ %s", tsu.p.tproxyMode, googleDNSAddr, conn.LocalAddr())
459+
tsu.p.logger.Debug().Err(er).Msgf("[udp %s] Failed setting read deadline %s→ %s", tsu.p.tproxyMode, conn.dstAddr, conn.LocalAddr())
467460
return
468461
}
469462
nr, er := conn.Read(buf)
@@ -473,10 +466,10 @@ func (tsu *tproxyServerUDP) handleDNSConnection(conn *dnsConn) {
473466
if errors.Is(er, net.ErrClosed) {
474467
return
475468
}
476-
tsu.p.logger.Debug().Err(er).Msgf("[udp %s] Failed setting write deadline %s→ %s", tsu.p.tproxyMode, conn.LocalAddr(), conn.clientAddr)
469+
tsu.p.logger.Debug().Err(er).Msgf("[udp %s] Failed setting write deadline %s→ %s", tsu.p.tproxyMode, conn.LocalAddr(), conn.srcAddr)
477470
return
478471
}
479-
nw, ew := tsu.gwConn.WriteToUDP(buf[0:nr], conn.clientAddr)
472+
nw, ew := tsu.gwConn.WriteToUDP(buf[0:nr], conn.srcAddr)
480473
if nw < 0 || nr < nw {
481474
nw = 0
482475
if ew == nil {
@@ -490,7 +483,7 @@ func (tsu *tproxyServerUDP) handleDNSConnection(conn *dnsConn) {
490483
if nr != nw {
491484
tsu.p.logger.Debug().
492485
Err(io.ErrShortWrite).
493-
Msgf("[udp %s] Failed sending message %s→ %s", tsu.p.tproxyMode, conn.LocalAddr(), conn.clientAddr)
486+
Msgf("[udp %s] Failed sending message %s→ %s", tsu.p.tproxyMode, conn.LocalAddr(), conn.srcAddr)
494487
return
495488
}
496489
}

0 commit comments

Comments
 (0)