Signed-off-by: arraykeys@gmail.com <arraykeys@gmail.com>

This commit is contained in:
arraykeys@gmail.com
2017-10-20 10:39:37 +08:00
parent 3440af51b0
commit e9b46d38e3
2 changed files with 20 additions and 9 deletions

View File

@ -31,6 +31,7 @@ Proxy是golang实现的高性能http,https,websocket,tcp,udp,socks5代理服务
- [v3.0手册](https://github.com/snail007/goproxy/tree/v3.0)
- [v2.x手册](https://github.com/snail007/goproxy/tree/v2.2)
* auto-gen TOC:
{:toc}
### Fast Start

View File

@ -393,6 +393,9 @@ func (s *Socks) proxyTCP(inConn *net.Conn, methodReq socks.MethodsRequest, reque
defer utils.CloseConn(&outConn)
var err interface{}
useProxy := true
tryCount := 0
maxTryCount := 3
for {
if *s.cfg.Always {
outConn, err = s.getOutConn(methodReq.Bytes(), request.Bytes(), request.Addr())
} else {
@ -408,6 +411,13 @@ func (s *Socks) proxyTCP(inConn *net.Conn, methodReq socks.MethodsRequest, reque
outConn, err = utils.ConnectHost(request.Addr(), *s.cfg.Timeout)
}
}
tryCount++
if err == nil || tryCount > maxTryCount {
break
} else {
log.Printf("get out conn fail,%s,retrying...", err)
}
}
if err != nil {
log.Printf("get out conn fail,%s", err)
request.TCPReply(socks.REP_NETWOR_UNREACHABLE)