mirror of
https://github.com/nadoo/glider.git
synced 2025-02-24 01:45:39 +08:00
uottun: serve in goroutine
This commit is contained in:
parent
38de018d91
commit
47820cccba
2
ss.go
2
ss.go
@ -178,7 +178,7 @@ func (s *SS) ListenAndServeUDP() {
|
|||||||
nm.Store(raddr.String(), pc)
|
nm.Store(raddr.String(), pc)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
timedCopy(c, raddr, pc, 1*time.Minute)
|
timedCopy(c, raddr, pc, 2*time.Minute)
|
||||||
pc.Close()
|
pc.Close()
|
||||||
nm.Delete(raddr.String())
|
nm.Delete(raddr.String())
|
||||||
}()
|
}()
|
||||||
|
14
uottun.go
14
uottun.go
@ -53,21 +53,23 @@ func (s *UoTTun) ListenAndServe() {
|
|||||||
|
|
||||||
rc.Write(buf[:n])
|
rc.Write(buf[:n])
|
||||||
|
|
||||||
|
go func() {
|
||||||
// no remote forwarder, just a local udp forwarder
|
// no remote forwarder, just a local udp forwarder
|
||||||
if urc, ok := rc.(*net.UDPConn); ok {
|
if urc, ok := rc.(*net.UDPConn); ok {
|
||||||
go func() {
|
timedCopy(c, clientAddr, urc, 2*time.Minute)
|
||||||
timedCopy(c, clientAddr, urc, 5*time.Minute)
|
|
||||||
urc.Close()
|
urc.Close()
|
||||||
}()
|
return
|
||||||
} else { // remote forwarder, udp over tcp
|
}
|
||||||
|
|
||||||
|
// remote forwarder, udp over tcp
|
||||||
resp, err := ioutil.ReadAll(rc)
|
resp, err := ioutil.ReadAll(rc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logf("error in ioutil.ReadAll: %s\n", err)
|
logf("error in ioutil.ReadAll: %s\n", err)
|
||||||
continue
|
return
|
||||||
}
|
}
|
||||||
rc.Close()
|
rc.Close()
|
||||||
c.WriteTo(resp, clientAddr)
|
c.WriteTo(resp, clientAddr)
|
||||||
}
|
}()
|
||||||
|
|
||||||
logf("proxy-uottun %s <-> %s", clientAddr, s.raddr)
|
logf("proxy-uottun %s <-> %s", clientAddr, s.raddr)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user