def halt_code(stats)
request_stats = {:discoverytime => 0,
:discovered => 0,
:okcount => 0,
:failcount => 0}.merge(stats.to_hash)
return 4 if request_stats[:discoverytime] == 0 && request_stats[:responses] == 0
return 3 if request_stats[:discovered] > 0 && request_stats[:responses] == 0
return 2 if request_stats[:discovered] > 0 && request_stats[:failcount] > 0
return 1 if request_stats[:discovered] == 0
return 0 if request_stats[:discoverytime] == 0 && request_stats[:discovered] == request_stats[:okcount]
return 0 if request_stats[:discovered] == request_stats[:okcount]
end