This commit is contained in:
刘河
2019-01-07 01:52:54 +08:00
parent 842e33018c
commit 7d8b1d02e1
9 changed files with 159 additions and 106 deletions

View File

@@ -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 {