From 1c78c8107526b7a05667ac49f0c34717477a4b61 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 28 Nov 2014 12:04:38 -0600 Subject: [PATCH] Add a passive flag for DHT, that disables responding to queries --- dht/dht.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dht/dht.go b/dht/dht.go index 71ae1cf7..65ff49bb 100644 --- a/dht/dht.go +++ b/dht/dht.go @@ -27,6 +27,7 @@ type Server struct { nodes map[string]*Node // Keyed by dHTAddr.String(). mu sync.Mutex closed chan struct{} + passive bool // Don't respond to queries. NumConfirmedAnnounces int } @@ -41,8 +42,9 @@ func newDHTAddr(addr *net.UDPAddr) (ret dHTAddr) { } type ServerConfig struct { - Addr string - Conn net.PacketConn + Addr string + Conn net.PacketConn + Passive bool // Don't respond to queries. } func (s *Server) LocalAddr() net.Addr { @@ -71,6 +73,7 @@ func NewServer(c *ServerConfig) (s *Server, err error) { return } } + s.passive = c.Passive err = s.init() if err != nil { return @@ -346,6 +349,9 @@ func (s *Server) nodeByID(id string) *Node { func (s *Server) handleQuery(source dHTAddr, m Msg) { args := m["a"].(map[string]interface{}) s.heardFromNode(source, args["id"].(string)) + if s.passive { + return + } switch m["q"] { case "ping": s.reply(source, m["t"].(string), nil) -- 2.48.1