client.go | 2 ++ dht/dht.go | 1 + dht/getpeers.go | 5 +++++ diff --git a/client.go b/client.go index 52618b5c715c4da8c900a127588779f4254bdd28..11be66800083fa2415fbba0422da3023ed9ce602 100644 --- a/client.go +++ b/client.go @@ -1729,6 +1729,8 @@ } return } +// Actively prunes unused connections. This is required to make space to dial +// for replacements. func (cl *Client) connectionPruner(t *torrent) { for { time.Sleep(15 * time.Second) diff --git a/dht/dht.go b/dht/dht.go index 06cdfcdae47045a834e6e700d35c204f1afef458..350d6d1dae4a883b5b8fef004e55d0cb311074b5 100644 --- a/dht/dht.go +++ b/dht/dht.go @@ -856,6 +856,7 @@ } t.onResponse = f } +// Add response nodes to node table. func (s *Server) liftNodes(d Msg) { if d["y"] != "r" { return diff --git a/dht/getpeers.go b/dht/getpeers.go index c507809c207572cdbdf169bb3cd72064d503ac7e..e58a0358a5679b9bc6a99dcce7d8f4ffa71171fd 100644 --- a/dht/getpeers.go +++ b/dht/getpeers.go @@ -1,5 +1,7 @@ package dht +// get_peers and announce_peers. + import ( "log" "time" @@ -121,6 +123,7 @@ } go func() { select { case m := <-t.Response: + // Register suggested nodes closer to the target info-hash. me.mu.Lock() for _, n := range m.Nodes() { me.responseNode(n) @@ -160,6 +163,8 @@ Peers []util.CompactPeer // Peers given in get_peers response. NodeInfo // The node that gave the response. } +// TODO: This was to be the shared publicly accessible part returned by DHT +// functions that stream peers. Possibly not necessary anymore. type peerStream struct { mu sync.Mutex Values chan peerStreamValue