]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Catch a few possible connection leaks
authorMatt Joiner <anacrolix@gmail.com>
Fri, 26 Dec 2014 06:18:36 +0000 (17:18 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 26 Dec 2014 06:18:36 +0000 (17:18 +1100)
client.go

index 20cbdfc67d080e84e45ddab8c756c70fa8ce4cb1..c11d1a027dd7a44b40c913896cd2e864f732c946 100644 (file)
--- a/client.go
+++ b/client.go
@@ -572,6 +572,7 @@ func (cl *Client) acceptConnections(l net.Listener, utp bool) {
                if blockRange != nil {
                        inboundConnsBlocked.Add(1)
                        log.Printf("inbound connection from %s blocked by %s", conn.RemoteAddr(), blockRange)
+                       conn.Close()
                        continue
                }
                go func() {
@@ -599,6 +600,9 @@ type dialResult struct {
 func doDial(dial func() (net.Conn, error), ch chan dialResult, utp bool) {
        conn, err := dial()
        if err != nil {
+               if conn != nil {
+                       conn.Close()
+               }
                conn = nil // Pedantic
        }
        ch <- dialResult{conn, utp}