|
| 1 | +From 2eaae3d11ea6b6954e820c48c36b9122e3882562 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Irine Sistiana < [email protected]> |
| 3 | +Date: Tue, 19 Sep 2023 07:59:17 +0800 |
| 4 | +Subject: [PATCH] fixed #715 |
| 5 | + |
| 6 | +--- |
| 7 | + pkg/server/udp.go | 11 ++++++----- |
| 8 | + 1 file changed, 6 insertions(+), 5 deletions(-) |
| 9 | + |
| 10 | +diff --git a/pkg/server/udp.go b/pkg/server/udp.go |
| 11 | +index a1e478b..8bb1b85 100644 |
| 12 | +--- a/pkg/server/udp.go |
| 13 | ++++ b/pkg/server/udp.go |
| 14 | +@@ -66,14 +66,15 @@ func (s *UDPServer) ServeUDP(c *net.UDPConn) error { |
| 15 | + if err != nil { |
| 16 | + return fmt.Errorf("failed to init oob handler, %w", err) |
| 17 | + } |
| 18 | +- var ob *[]byte |
| 19 | ++ var ob []byte |
| 20 | + if oobReader != nil { |
| 21 | +- ob = pool.GetBuf(1024) |
| 22 | +- defer pool.ReleaseBuf(ob) |
| 23 | ++ obp := pool.GetBuf(1024) |
| 24 | ++ defer pool.ReleaseBuf(obp) |
| 25 | ++ ob = *obp |
| 26 | + } |
| 27 | + |
| 28 | + for { |
| 29 | +- n, oobn, _, remoteAddr, err := c.ReadMsgUDPAddrPort(*rb, *ob) |
| 30 | ++ n, oobn, _, remoteAddr, err := c.ReadMsgUDPAddrPort(*rb, ob) |
| 31 | + if err != nil { |
| 32 | + return fmt.Errorf("unexpected read err: %w", err) |
| 33 | + } |
| 34 | +@@ -88,7 +89,7 @@ func (s *UDPServer) ServeUDP(c *net.UDPConn) error { |
| 35 | + var dstIpFromCm net.IP |
| 36 | + if oobReader != nil { |
| 37 | + var err error |
| 38 | +- dstIpFromCm, err = oobReader((*ob)[:oobn]) |
| 39 | ++ dstIpFromCm, err = oobReader(ob[:oobn]) |
| 40 | + if err != nil { |
| 41 | + s.opts.Logger.Error("failed to get dst address from oob", zap.Error(err)) |
| 42 | + } |
| 43 | +-- |
| 44 | +2.34.8 |
| 45 | + |
0 commit comments