dht: Improve behaviour when adding new root nodes

This commit is contained in:
Matt Joiner 2015-05-20 22:26:33 +10:00
parent f42e27319f
commit 83685f2a4b
1 changed files with 12 additions and 0 deletions

View File

@ -1052,12 +1052,24 @@ func bootstrapAddrs(nodeAddrs []string) (addrs []*net.UDPAddr, err error) {
return
}
// Adds bootstrap nodes directly to table, if there's room. Node ID security
// is bypassed, but the IP blocklist is not.
func (s *Server) addRootNodes() error {
addrs, err := bootstrapAddrs(s.bootstrapNodes)
if err != nil {
return err
}
for _, addr := range addrs {
if len(s.nodes) >= maxNodes {
break
}
if s.nodes[addr.String()] != nil {
continue
}
if s.ipBlocked(addr.IP) {
log.Printf("dht root node is in the blocklist: %s", addr.IP)
continue
}
s.nodes[addr.String()] = &node{
addr: newDHTAddr(addr),
}