Filter out pings that do not specify if they're leaf. Do not crawl leafs

pull/4/head
Zlatin Balevsky 2018-07-12 09:05:03 +01:00
parent a6131d83b0
commit 24f647020e
1 changed files with 9 additions and 7 deletions

View File

@ -106,7 +106,13 @@ public class HostCache {
switch(payload.type) { switch(payload.type) {
case "Ping" : case "Ping" :
println "Ping" println "Ping"
hostPool.addUnverified(new Host(destination: sender)) if (payload.leaf == null) {
println "WARN: ping didn't specify if leaf"
return
}
payload.leaf = Boolean.parseBoolean(payload.leaf.toString())
if (!payload.leaf)
hostPool.addUnverified(new Host(destination: sender))
respond(session, sender, payload) respond(session, sender, payload)
break break
case "CrawlerPong": case "CrawlerPong":
@ -124,12 +130,8 @@ public class HostCache {
} }
def respond(session, destination, ping) { def respond(session, destination, ping) {
if (ping.leaf == null) {
println "WARN: ping didn't specify if it were a leaf" def pongs = hostPool.getVerified(toReturn, ping.leaf)
return
}
boolean leaf = Boolean.parseBoolean(ping.leaf.toString())
def pongs = hostPool.getVerified(toReturn, leaf)
pongs = pongs.stream().map({ x -> x.destination.toBase64() }).collect(Collectors.toList()) pongs = pongs.stream().map({ x -> x.destination.toBase64() }).collect(Collectors.toList())
def pong = [type:"Pong", version: 1, pongs: pongs] def pong = [type:"Pong", version: 1, pongs: pongs]