From: Matt Joiner Date: Fri, 28 Nov 2014 18:04:38 +0000 (-0600) Subject: Add a passive flag for DHT, that disables responding to queries X-Git-Tag: v1.0.0~1477 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=1c78c8107526b7a05667ac49f0c34717477a4b61;p=btrtrc.git Add a passive flag for DHT, that disables responding to queries --- 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)