From a272676059a92149effeba70ead82b85d63a948b Mon Sep 17 00:00:00 2001 From: Akira kure Date: Sun, 23 May 2021 23:34:31 +0900 Subject: [PATCH] Revert "refactor" --- lib/simple_ping/client.rb | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/simple_ping/client.rb b/lib/simple_ping/client.rb index 1f893ba..a2f8ef8 100644 --- a/lib/simple_ping/client.rb +++ b/lib/simple_ping/client.rb @@ -40,17 +40,19 @@ def exec(dest_ip_addr:, data: nil) # Receive begin Timeout.timeout(TIMEOUT_TIME) do - mesg, _ = socket.recvfrom(1500) - icmp_reply = SimplePing::RecvMessage.new(mesg).to_icmp + loop do + mesg, _ = socket.recvfrom(1500) + icmp_reply = SimplePing::RecvMessage.new(mesg).to_icmp - if icmp.successful_reply?(icmp_reply) - true - elsif icmp_reply.is_type_destination_unreachable? - logger.warn { "Destination Unreachable!!" } - false - elsif icmp_reply.is_type_redirect? - logger.warn { "Redirect Required!!" } - false + if icmp.successful_reply?(icmp_reply) + return true + elsif icmp_reply.is_type_destination_unreachable? + logger.warn { "Destination Unreachable!!" } + return false + elsif icmp_reply.is_type_redirect? + logger.warn { "Redirect Required!!" } + return false + end end end rescue Timeout::Error => e