]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Handle SetDeadline failure for handshake
authorMatt Joiner <anacrolix@gmail.com>
Mon, 9 Feb 2015 13:17:59 +0000 (00:17 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 9 Feb 2015 13:17:59 +0000 (00:17 +1100)
client.go

index 394cea2349ac0d191d3790290381840933d1a8f3..d043f06704574ede1919131543dbb30f099d2e37 100644 (file)
--- a/client.go
+++ b/client.go
@@ -851,11 +851,15 @@ func (me *Client) runConnection(sock net.Conn, torrent *torrent, discovery peerS
                tcpConn.SetLinger(0)
        }
        defer sock.Close()
+       // One minute to complete handshake.
+       err = sock.SetDeadline(time.Now().Add(time.Minute))
+       if err != nil {
+               err = fmt.Errorf("couldn't set handshake deadline: %s", err)
+               return
+       }
        me.mu.Lock()
        me.handshaking++
        me.mu.Unlock()
-       // One minute to complete handshake.
-       sock.SetDeadline(time.Now().Add(time.Minute))
        hsRes, ok, err := handshake(sock, func() *InfoHash {
                if torrent == nil {
                        return nil