2
0
mirror of synced 2025-02-24 06:38:14 +00:00

Changes for dht-cleanup

This commit is contained in:
Matt Joiner 2017-07-21 00:40:49 +10:00
parent 99b3f98e3e
commit 2624281842
3 changed files with 15 additions and 10 deletions

View File

@ -305,9 +305,15 @@ func NewClient(cfg *Config) (cl *Client, err error) {
if dhtCfg.IPBlocklist == nil { if dhtCfg.IPBlocklist == nil {
dhtCfg.IPBlocklist = cl.ipBlockList dhtCfg.IPBlocklist = cl.ipBlockList
} }
dhtCfg.Addr = firstNonEmptyString(dhtCfg.Addr, cl.listenAddr, cl.config.ListenAddr) if dhtCfg.Conn == nil {
if dhtCfg.Conn == nil && cl.utpSock != nil { if cl.utpSock != nil {
dhtCfg.Conn = cl.utpSock 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 { if dhtCfg.OnAnnouncePeer == nil {
dhtCfg.OnAnnouncePeer = cl.onDHTAnnouncePeer dhtCfg.OnAnnouncePeer = cl.onDHTAnnouncePeer

View File

@ -16,7 +16,6 @@ import (
"testing" "testing"
"time" "time"
"github.com/anacrolix/dht"
_ "github.com/anacrolix/envpprof" _ "github.com/anacrolix/envpprof"
"github.com/anacrolix/missinggo" "github.com/anacrolix/missinggo"
"github.com/anacrolix/missinggo/filecache" "github.com/anacrolix/missinggo/filecache"
@ -49,9 +48,6 @@ func TestingConfig() *Config {
} }
return ret return ret
}(), }(),
DHTConfig: dht.ServerConfig{
NoDefaultBootstrap: true,
},
Debug: true, Debug: true,
} }
} }
@ -831,11 +827,14 @@ func TestAddMetainfoWithNodes(t *testing.T) {
cl, err := NewClient(cfg) cl, err := NewClient(cfg)
require.NoError(t, err) require.NoError(t, err)
defer cl.Close() 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") tt, err := cl.AddTorrentFromFile("metainfo/testdata/issue_65a.torrent")
require.NoError(t, err) 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.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 { type testDownloadCancelParams struct {

View File

@ -913,7 +913,7 @@ func (c *connection) mainReadLoop() error {
if msg.Port != 0 { if msg.Port != 0 {
pingAddr.Port = int(msg.Port) pingAddr.Port = int(msg.Port)
} }
go cl.dHT.Ping(pingAddr) go cl.dHT.Ping(pingAddr, nil)
default: default:
err = fmt.Errorf("received unknown message type: %#v", msg.Type) err = fmt.Errorf("received unknown message type: %#v", msg.Type)
} }