优化了socks5的UDP功能可能存在的内存占用过多问题.
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
proxy更新日志
|
proxy更新日志
|
||||||
v6.4
|
v6.4
|
||||||
1.http(s)代理增加了--jumper参数,可以穿透外部代理连接上级.
|
1.http(s)代理增加了--jumper参数,可以穿透外部代理连接上级.
|
||||||
|
2.优化了socks5代理UDP功能可能存在的内存占用过多问题.
|
||||||
|
|
||||||
v6.3
|
v6.3
|
||||||
1.fixed #156
|
1.fixed #156
|
||||||
|
|||||||
@ -174,9 +174,9 @@ func (s *Socks) proxyUDP(inConn *net.Conn, serverConn *socks.ServerConn) {
|
|||||||
}
|
}
|
||||||
s.log.Printf("use proxy %v : udp %s", useProxy, serverConn.Target())
|
s.log.Printf("use proxy %v : udp %s", useProxy, serverConn.Target())
|
||||||
//relay
|
//relay
|
||||||
|
buf := utils.LeakyBuffer.Get()
|
||||||
|
defer utils.LeakyBuffer.Put(buf)
|
||||||
for {
|
for {
|
||||||
buf := utils.LeakyBuffer.Get()
|
|
||||||
defer utils.LeakyBuffer.Put(buf)
|
|
||||||
n, srcAddr, err := udpListener.ReadFromUDP(buf)
|
n, srcAddr, err := udpListener.ReadFromUDP(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Printf("udp listener read fail, %s", err.Error())
|
s.log.Printf("udp listener read fail, %s", err.Error())
|
||||||
|
|||||||
@ -126,9 +126,9 @@ func (s *SPS) proxyUDP(inConn *net.Conn, serverConn *socks.ServerConn) {
|
|||||||
//s.log.Printf("parent udp address %s", client.UDPAddr)
|
//s.log.Printf("parent udp address %s", client.UDPAddr)
|
||||||
destAddr, _ = net.ResolveUDPAddr("udp", client.UDPAddr)
|
destAddr, _ = net.ResolveUDPAddr("udp", client.UDPAddr)
|
||||||
//relay
|
//relay
|
||||||
|
buf := utils.LeakyBuffer.Get()
|
||||||
|
defer utils.LeakyBuffer.Put(buf)
|
||||||
for {
|
for {
|
||||||
buf := utils.LeakyBuffer.Get()
|
|
||||||
defer utils.LeakyBuffer.Put(buf)
|
|
||||||
n, srcAddr, err := udpListener.ReadFromUDP(buf)
|
n, srcAddr, err := udpListener.ReadFromUDP(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Printf("udp listener read fail, %s", err.Error())
|
s.log.Printf("udp listener read fail, %s", err.Error())
|
||||||
|
|||||||
@ -27,9 +27,9 @@ func (s *SPS) RunSSUDP(addr string) (err error) {
|
|||||||
s.log.Printf("udp local->out io copy crashed:\n%s\n%s", e, string(debug.Stack()))
|
s.log.Printf("udp local->out io copy crashed:\n%s\n%s", e, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
buf := utils.LeakyBuffer.Get()
|
||||||
|
defer utils.LeakyBuffer.Put(buf)
|
||||||
for {
|
for {
|
||||||
buf := utils.LeakyBuffer.Get()
|
|
||||||
defer utils.LeakyBuffer.Put(buf)
|
|
||||||
n, srcAddr, err := listener.ReadFrom(buf)
|
n, srcAddr, err := listener.ReadFrom(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Printf("read from client error %s", err)
|
s.log.Printf("read from client error %s", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user