client.go | 1 + config.go | 4 ++++ diff --git a/client.go b/client.go index 2d2a3fa7eac4dcdcd6f99668916201cd4e929665..004ae686e504b6eb657b6e20bfabbe5027477a69 100644 --- a/client.go +++ b/client.go @@ -313,6 +313,7 @@ return cl.config.PublicIp4 }(), StartingNodes: cl.config.DhtStartingNodes, ConnectionTracking: cl.config.ConnTracker, + OnQuery: cl.config.DHTOnQuery, } s, err = dht.NewServer(&cfg) if err == nil { diff --git a/config.go b/config.go index 4ac212d65f27283cb72df5d9d43dbdeff551f54a..f8057b23d982583b4a06637cb4fe3f37aa5e1b1e 100644 --- a/config.go +++ b/config.go @@ -7,6 +7,7 @@ "net/url" "time" "github.com/anacrolix/dht" + "github.com/anacrolix/dht/krpc" "github.com/anacrolix/missinggo" "github.com/anacrolix/missinggo/conntrack" "github.com/anacrolix/missinggo/expect" @@ -124,6 +125,9 @@ // connection for a given Torrent. dropDuplicatePeerIds bool ConnTracker *conntrack.Instance + + // OnQuery hook func + DHTOnQuery func(query *krpc.Msg, source net.Addr) (propagate bool) } func (cfg *ClientConfig) SetListenAddr(addr string) *ClientConfig {