]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add ClientConfig.ConfigureAnacrolixDhtServer
authorMatt Joiner <anacrolix@gmail.com>
Sat, 20 Feb 2021 11:16:54 +0000 (22:16 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Sat, 20 Feb 2021 11:16:54 +0000 (22:16 +1100)
client.go
config.go
go.sum

index cc59dd34924defcc6c255c012b44c91652bedef0..fa17ccb52de9f79e7ef2e9fa018c2965269af679 100644 (file)
--- a/client.go
+++ b/client.go
@@ -361,6 +361,9 @@ func (cl *Client) newAnacrolixDhtServer(conn net.PacketConn) (s *dht.Server, err
                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() {
index 0cfde9d0b8916505db748324e6cbf0a3f139dfc2..c7b08965f44775eb76f71e567dd194804ed03954 100644 (file)
--- a/config.go
+++ b/config.go
@@ -37,6 +37,9 @@ type ClientConfig struct {
        // 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 (file)
--- a/go.sum
+++ b/go.sum
@@ -58,6 +58,7 @@ github.com/alexflint/go-scalar v1.0.0 h1:NGupf1XV/Xb04wXskDFzS0KWOLH632W/EO4fAFi
 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=