File tree Expand file tree Collapse file tree 1 file changed +3
-10
lines changed Expand file tree Collapse file tree 1 file changed +3
-10
lines changed Original file line number Diff line number Diff line change @@ -888,22 +888,15 @@ func (c *Common) singleUDPLoop() error {
888888 }()
889889
890890 buffer := make ([]byte , udpDataBufSize )
891+ reader := & conn.TimeoutReader {Conn : targetConn , Timeout : udpReadTimeout }
891892
892893 for {
893894 select {
894895 case <- c .ctx .Done ():
895896 return
896897 default :
897- // 设置UDP读取超时
898- if err := targetConn .SetReadDeadline (time .Now ().Add (udpReadTimeout )); err != nil {
899- c .logger .Error ("SetReadDeadline failed: %v" , err )
900- c .targetUDPSession .Delete (sessionKey )
901- targetConn .Close ()
902- return
903- }
904-
905898 // 从UDP读取响应
906- n , err := targetConn .Read (buffer )
899+ x , err := reader .Read (buffer )
907900 if err != nil {
908901 if netErr , ok := err .(net.Error ); ok && netErr .Timeout () {
909902 c .logger .Debug ("UDP session abort: %v" , err )
@@ -918,7 +911,7 @@ func (c *Common) singleUDPLoop() error {
918911 }
919912
920913 // 将响应写回隧道UDP连接
921- tx , err := c .tunnelUDPConn .WriteToUDP (buffer [:n ], clientAddr )
914+ tx , err := c .tunnelUDPConn .WriteToUDP (buffer [:x ], clientAddr )
922915 if err != nil {
923916 c .logger .Error ("WriteToUDP failed: %v" , err )
924917 c .targetUDPSession .Delete (sessionKey )
You can’t perform that action at this time.
0 commit comments