Refactor(proxy): replace with safeConnClose

This commit is contained in:
xjasonlyu
2021-07-16 17:51:58 +08:00
parent c2ad0930b0
commit 33e2aed86c
3 changed files with 9 additions and 10 deletions

View File

@@ -50,11 +50,7 @@ func (ss *Shadowsocks) DialContext(ctx context.Context, metadata *M.Metadata) (c
} }
setKeepAlive(c) setKeepAlive(c)
defer func() { defer safeConnClose(c, err)
if err != nil && c != nil {
c.Close()
}
}()
switch ss.obfsMode { switch ss.obfsMode {
case "tls": case "tls":

View File

@@ -39,11 +39,7 @@ func (ss *Socks5) DialContext(ctx context.Context, metadata *M.Metadata) (c net.
} }
setKeepAlive(c) setKeepAlive(c)
defer func() { defer safeConnClose(c, err)
if err != nil && c != nil {
c.Close()
}
}()
var user *socks5.User var user *socks5.User
if ss.user != "" { if ss.user != "" {

View File

@@ -16,3 +16,10 @@ func setKeepAlive(c net.Conn) {
tcp.SetKeepAlivePeriod(tcpKeepAlivePeriod) tcp.SetKeepAlivePeriod(tcpKeepAlivePeriod)
} }
} }
// safeConnClose closes tcp connection safely.
func safeConnClose(c net.Conn, err error) {
if c != nil && err != nil {
c.Close()
}
}