close tunnel properly

This commit is contained in:
rui.zheng 2015-06-10 15:36:17 +08:00
parent 573d31ae23
commit 8e568b6451

View File

@ -210,6 +210,7 @@ func handleSocks5(conn net.Conn) {
log.Println(err) log.Println(err)
return return
} }
defer sconn.Close()
switch req.Cmd { switch req.Cmd {
case gosocks5.CmdConnect, gosocks5.CmdBind: case gosocks5.CmdConnect, gosocks5.CmdBind:
@ -326,6 +327,7 @@ func handleHttp(req *http.Request, conn net.Conn) {
log.Println(err) log.Println(err)
return return
} }
defer sconn.Close()
if err := r.Write(sconn); err != nil { if err := r.Write(sconn); err != nil {
return return
@ -366,6 +368,7 @@ func handleShadow(conn net.Conn) {
log.Println(err) log.Println(err)
return return
} }
defer sconn.Close()
req := gosocks5.NewRequest(gosocks5.CmdConnect, addr) req := gosocks5.NewRequest(gosocks5.CmdConnect, addr)
if err := req.Write(sconn); err != nil { if err := req.Write(sconn); err != nil {