]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add OnQuery Hook
authorBruceWang <bruce.wang@dbappsecurity.com.cn>
Thu, 23 May 2019 02:13:48 +0000 (10:13 +0800)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 29 May 2019 05:08:46 +0000 (15:08 +1000)
client.go
config.go

index 2d2a3fa7eac4dcdcd6f99668916201cd4e929665..004ae686e504b6eb657b6e20bfabbe5027477a69 100644 (file)
--- a/client.go
+++ b/client.go
@@ -313,6 +313,7 @@ func (cl *Client) newDhtServer(conn net.PacketConn) (s *dht.Server, err error) {
                }(),
                StartingNodes:      cl.config.DhtStartingNodes,
                ConnectionTracking: cl.config.ConnTracker,
+               OnQuery:            cl.config.DHTOnQuery,
        }
        s, err = dht.NewServer(&cfg)
        if err == nil {
index 4ac212d65f27283cb72df5d9d43dbdeff551f54a..f8057b23d982583b4a06637cb4fe3f37aa5e1b1e 100644 (file)
--- a/config.go
+++ b/config.go
@@ -7,6 +7,7 @@ import (
        "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 @@ type ClientConfig struct {
        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 {