Moved the 'add_delay_jitter' function to scanner.rb so that all modules can benefit from it if needed

bug/bundler_fix
Stuart Morgan 2015-12-05 15:02:31 +00:00
parent cc770ab120
commit d645052391
1 changed files with 30 additions and 0 deletions

View File

@ -299,6 +299,36 @@ def scanner_show_progress
end
end
def add_delay_jitter(_delay, _jitter)
# Introduce the delay
delay_value = _delay.to_i
original_value = delay_value
jitter_value = _jitter.to_i
# Retrieve the jitter value and delay value
# Delay = number of milliseconds to wait between each request
# Jitter = percentage modifier. For example:
# Delay is 1000ms (i.e. 1 second), Jitter is 50.
# 50/100 = 0.5; 0.5*1000 = 500. Therefore, the per-request
# delay will be 1000 +/- a maximum of 500ms.
if delay_value>0
if jitter_value>0
rnd = Random.new
if (rnd.rand(2)==0)
delay_value += rnd.rand(jitter_value)
else
delay_value -= rnd.rand(jitter_value)
end
if delay_value<0
delay_value = 0
end
end
final_delay = delay_value.to_f/1000.0
vprint_status("Delaying for #{final_delay} second(s) (#{original_value}ms +/- #{jitter_value}ms)")
sleep final_delay
end
end
end
end