diff --git a/socks5.go b/socks5.go index 8d3beee..4a30b29 100644 --- a/socks5.go +++ b/socks5.go @@ -206,17 +206,18 @@ func serveSocks5(conn net.Conn) { log.Println("bind:", addr) rep := gosocks5.NewReply(gosocks5.Succeeded, addr) if err := rep.Write(conn); err != nil { + log.Println(err) return } tconn, err := l.AcceptTCP() + l.Close() // only accept one peer if err != nil { log.Println("accept:", err) gosocks5.NewReply(gosocks5.Failure, nil).Write(conn) return } defer tconn.Close() - l.Close() addr = ToSocksAddr(tconn.RemoteAddr()) log.Println("accept peer:", addr.String())