p2p/discover: validate bond against lastpong, not db presence

This commit is contained in:
Péter Szilágyi 2018-02-16 17:05:08 +02:00
parent 4e61ed02e2
commit 32301a4d6b
No known key found for this signature in database
GPG Key ID: E9AE538CEDF8293D

View File

@ -613,7 +613,7 @@ func (req *findnode) handle(t *udp, from *net.UDPAddr, fromID NodeID, mac []byte
if expired(req.Expiration) {
return errExpired
}
if t.db.node(fromID) == nil {
if age := time.Since(t.db.lastPong(fromID)); age > nodeDBNodeExpiration {
// No bond exists, we don't process the packet. This prevents
// an attack vector where the discovery protocol could be used
// to amplify traffic in a DDOS attack. A malicious actor