]> Sergey Matveev's repositories - btrtrc.git/commitdiff
When metadata arrives, we also need to init request ordering
authorMatt Joiner <anacrolix@gmail.com>
Wed, 3 Dec 2014 00:42:22 +0000 (18:42 -0600)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 3 Dec 2014 00:42:22 +0000 (18:42 -0600)
client.go
torrent.go

index 9cbf4aa7923d21b1da9230200426fc6917c9ea4c..cddb442f305b0303a627bc6723be6f363e695879 100644 (file)
--- a/client.go
+++ b/client.go
@@ -892,7 +892,7 @@ func (me *Client) runConnection(sock net.Conn, torrent *torrent, discovery peerS
                })
        }
        if torrent.haveInfo() {
-               me.initRequestOrdering(torrent, conn)
+               torrent.initRequestOrdering(conn)
        }
        err = me.connectionLoop(torrent, conn)
        if err != nil {
@@ -902,7 +902,7 @@ func (me *Client) runConnection(sock net.Conn, torrent *torrent, discovery peerS
        return
 }
 
-func (cl *Client) initRequestOrdering(t *torrent, c *connection) {
+func (t *torrent) initRequestOrdering(c *connection) {
        if c.pieceRequestOrder != nil || c.piecePriorities != nil {
                panic("double init of request ordering")
        }
index 8e909a0984660ce7def09c2390f01dd2d581be96..e4114e576ba3f9029d4401694432626ea49d1475 100644 (file)
@@ -230,6 +230,7 @@ func (t *torrent) setMetadata(md metainfo.Info, dataDir string, infoBytes []byte
        }
        t.assertIncompletePiecesByBytesLeftOrdering()
        for _, conn := range t.Conns {
+               t.initRequestOrdering(conn)
                if err := conn.setNumPieces(t.NumPieces()); err != nil {
                        log.Printf("closing connection: %s", err)
                        conn.Close()