Moved the 'add_delay_jitter' function to scanner.rb so that all modules can benefit from it if needed
parent
cc770ab120
commit
d645052391
|
@ -299,6 +299,36 @@ def scanner_show_progress
|
||||||
end
|
end
|
||||||
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue