]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Changes for dht-cleanup
authorMatt Joiner <anacrolix@gmail.com>
Thu, 20 Jul 2017 14:40:49 +0000 (00:40 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 20 Jul 2017 14:40:49 +0000 (00:40 +1000)
client.go
client_test.go
connection.go

index d1cf5069887bb5ba46d7f38d7a0bf871bbea4ab9..c86ea5b282a71671ff525d070827d2e023b67381 100644 (file)
--- a/client.go
+++ b/client.go
@@ -305,9 +305,15 @@ func NewClient(cfg *Config) (cl *Client, err error) {
                if dhtCfg.IPBlocklist == nil {
                        dhtCfg.IPBlocklist = cl.ipBlockList
                }
-               dhtCfg.Addr = firstNonEmptyString(dhtCfg.Addr, cl.listenAddr, cl.config.ListenAddr)
-               if dhtCfg.Conn == nil && cl.utpSock != nil {
-                       dhtCfg.Conn = cl.utpSock
+               if dhtCfg.Conn == nil {
+                       if cl.utpSock != nil {
+                               dhtCfg.Conn = cl.utpSock
+                       } else {
+                               dhtCfg.Conn, err = net.ListenPacket("udp", firstNonEmptyString(cl.listenAddr, cl.config.ListenAddr))
+                               if err != nil {
+                                       return
+                               }
+                       }
                }
                if dhtCfg.OnAnnouncePeer == nil {
                        dhtCfg.OnAnnouncePeer = cl.onDHTAnnouncePeer
index bd5643d2ab5cd57b36aa5804535103dcd0252c18..b2d5980150d465741334ff652b1036b259f2c132 100644 (file)
@@ -16,7 +16,6 @@ import (
        "testing"
        "time"
 
-       "github.com/anacrolix/dht"
        _ "github.com/anacrolix/envpprof"
        "github.com/anacrolix/missinggo"
        "github.com/anacrolix/missinggo/filecache"
@@ -49,9 +48,6 @@ func TestingConfig() *Config {
                        }
                        return ret
                }(),
-               DHTConfig: dht.ServerConfig{
-                       NoDefaultBootstrap: true,
-               },
                Debug: true,
        }
 }
@@ -831,11 +827,14 @@ func TestAddMetainfoWithNodes(t *testing.T) {
        cl, err := NewClient(cfg)
        require.NoError(t, err)
        defer cl.Close()
-       assert.EqualValues(t, cl.DHT().NumNodes(), 0)
+       assert.EqualValues(t, 0, cl.DHT().NumNodes()+cl.DHT().Stats().OutstandingTransactions)
        tt, err := cl.AddTorrentFromFile("metainfo/testdata/issue_65a.torrent")
        require.NoError(t, err)
+       // Nodes are not added or exposed in Torrent's metainfo. We just randomly
+       // check if the announce-list is here instead. TODO: Add nodes.
        assert.Len(t, tt.metainfo.AnnounceList, 5)
-       assert.EqualValues(t, 6, cl.DHT().NumNodes())
+       // There are 6 nodes in the torrent file.
+       assert.EqualValues(t, 6, cl.DHT().NumNodes()+cl.DHT().Stats().OutstandingTransactions)
 }
 
 type testDownloadCancelParams struct {
index 69e294d5c1200883a272299d97b1fac00867e5e3..575917bcd7a7e04c9e5458352118e4b84457d187 100644 (file)
@@ -913,7 +913,7 @@ func (c *connection) mainReadLoop() error {
                        if msg.Port != 0 {
                                pingAddr.Port = int(msg.Port)
                        }
-                       go cl.dHT.Ping(pingAddr)
+                       go cl.dHT.Ping(pingAddr, nil)
                default:
                        err = fmt.Errorf("received unknown message type: %#v", msg.Type)
                }