mirror of
https://github.com/ehang-io/nps.git
synced 2025-09-16 08:16:54 +00:00
调整
This commit is contained in:
34
lib/udp.go
34
lib/udp.go
@@ -55,22 +55,26 @@ func (s *UdpModeServer) process(addr *net.UDPAddr, data []byte) {
|
||||
return
|
||||
}
|
||||
conn.WriteTo(data, s.config.CompressEncode, s.config.Crypt)
|
||||
go func(addr *net.UDPAddr, conn *Conn) {
|
||||
defer func() {
|
||||
if s.config.Mux {
|
||||
s.bridge.ReturnTunnel(conn, getverifyval(s.config.VerifyKey))
|
||||
}
|
||||
}()
|
||||
buf := make([]byte, 1024)
|
||||
conn.conn.SetReadDeadline(time.Now().Add(time.Duration(time.Second * 3)))
|
||||
n, err := conn.ReadFrom(buf, s.config.CompressDecode, s.config.Crypt)
|
||||
if err != nil || err == io.EOF {
|
||||
conn.Close()
|
||||
return
|
||||
if flag, err := conn.ReadFlag(); err == nil {
|
||||
if flag == CONN_SUCCESS {
|
||||
go func(addr *net.UDPAddr, conn *Conn) {
|
||||
defer func() {
|
||||
if s.config.Mux {
|
||||
s.bridge.ReturnTunnel(conn, getverifyval(s.config.VerifyKey))
|
||||
}
|
||||
}()
|
||||
buf := make([]byte, 1024)
|
||||
conn.conn.SetReadDeadline(time.Now().Add(time.Duration(time.Second * 3)))
|
||||
n, err := conn.ReadFrom(buf, s.config.CompressDecode, s.config.Crypt)
|
||||
if err != nil || err == io.EOF {
|
||||
conn.Close()
|
||||
return
|
||||
}
|
||||
s.listener.WriteToUDP(buf[:n], addr)
|
||||
conn.Close()
|
||||
}(addr, conn)
|
||||
}
|
||||
s.listener.WriteToUDP(buf[:n], addr)
|
||||
conn.Close()
|
||||
}(addr, conn)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *UdpModeServer) Close() error {
|
||||
|
Reference in New Issue
Block a user