client.go | 3 +++ config.go | 3 +++ go.sum | 1 + diff --git a/client.go b/client.go index cc59dd34924defcc6c255c012b44c91652bedef0..fa17ccb52de9f79e7ef2e9fa018c2965269af679 100644 --- a/client.go +++ b/client.go @@ -361,6 +361,9 @@ ConnectionTracking: cl.config.ConnTracker, OnQuery: cl.config.DHTOnQuery, Logger: cl.logger.WithContextText(fmt.Sprintf("dht server on %v", conn.LocalAddr().String())), } + if f := cl.config.ConfigureAnacrolixDhtServer; f != nil { + f(&cfg) + } s, err = dht.NewServer(&cfg) if err == nil { go func() { diff --git a/config.go b/config.go index 0cfde9d0b8916505db748324e6cbf0a3f139dfc2..c7b08965f44775eb76f71e567dd194804ed03954 100644 --- a/config.go +++ b/config.go @@ -37,6 +37,9 @@ // Don't create a DHT. NoDHT bool `long:"disable-dht"` DhtStartingNodes func(network string) dht.StartingNodesGetter + // Called for each anacrolix/dht Server created for the Client. + ConfigureAnacrolixDhtServer func(*dht.ServerConfig) + // Never send chunks to peers. NoUpload bool `long:"no-upload"` // Disable uploading even when it isn't fair. diff --git a/go.sum b/go.sum index 85e1ff99f21470a9a46011a35d6fae4bbdbde5ab..153b9937cb0726c823700079d7140ed5f60ee12f 100644 --- a/go.sum +++ b/go.sum @@ -58,6 +58,7 @@ github.com/alexflint/go-scalar v1.0.0 h1:NGupf1XV/Xb04wXskDFzS0KWOLH632W/EO4fAFi+A70= github.com/alexflint/go-scalar v1.0.0/go.mod h1:GpHzbCOZXEKMEcygYQ5n/aa4Aq84zbxjy3MxYW0gjYw= github.com/anacrolix/dht v0.0.0-20180412060941-24cbf25b72a4 h1:0yHJvFiGQhJ1gSHJOR8xzmnx45orEt7uiIB6guf0+zc= github.com/anacrolix/dht v0.0.0-20180412060941-24cbf25b72a4/go.mod h1:hQfX2BrtuQsLQMYQwsypFAab/GvHg8qxwVi4OJdR1WI= +github.com/anacrolix/dht v1.0.1 h1:a7zVMiZWfPiToAUbjMZYeI3UvmsDP3j8vH5EDIAjM9c= github.com/anacrolix/dht/v2 v2.0.1 h1:gOHJ+OKqJ4Eb48OYStZm4AlWr1/nSA2TWlzb/+t36SA= github.com/anacrolix/dht/v2 v2.0.1/go.mod h1:GbTT8BaEtfqab/LPd5tY41f3GvYeii3mmDUK300Ycyo= github.com/anacrolix/dht/v2 v2.2.1-0.20191103020011-1dba080fb358 h1:Fji8X0K+FTn9UUupodVCCnQG7wNXETUARGT+8P5s+N0=