Mentions légales du service

Skip to content
Snippets Groups Projects

retry port_test if we encounter a timeout then return false

Merged Alexandre MERLIN requested to merge bugs/#13197 into master
All threads resolved!
@@ -35,11 +35,15 @@ module PortScanner
# Test if a node accept or refuse connections on every ports of a list (TCP)
def self.ports_test(nodeid, ports, accept=true)
max_retry = 2
current_retry = 0
ret = true
ports.each do |port|
begin
s = TCPSocket.open(nodeid, port)
s.close
Timeout.timeout(5) do
s = TCPSocket.open(nodeid, port)
s.close
end
unless accept
ret = false
break
@@ -52,6 +56,15 @@ module PortScanner
rescue Errno::EHOSTUNREACH
ret = false
break
rescue Timeout::Error
# We want to retry if we encounter a timeout
if current_retry >= max_retry
ret = false
break
end
current_retry += 1
sleep(1)
redo
end
end
ret
Loading