diff --git a/check_ping_multiaddr.py b/check_ping_multiaddr.py index 1a297dc4e398662e10805c69bc8e9d45ea4241d1..73e886242c299256df68bd2d679572d797e7bf59 100755 --- a/check_ping_multiaddr.py +++ b/check_ping_multiaddr.py @@ -56,6 +56,10 @@ class Options(optparse.OptionParser): help=("Check all addresses each hostname resolves to." " By default, only the first address for each host is" " checked.")) + self.add_option( + '-r', '--retries', action='store', type='int', default=9, + help=("Number of ICMP ECHO retries to send [default: %default]." + " Must be in the range 1 <= RETRIES <= 20.")) self.add_option( '-d', '--debug', action='count', default=0, help=("Increase debug level [default: %default].")) @@ -72,6 +76,9 @@ class Options(optparse.OptionParser): self.error("At least one IP address is required") if not values.ipv4 and not values.ipv6: self.error("At least one IP version must be specified (-4, -6)") + if values.retries < 1 or values.retries > 20: + self.error( + "Retries (-r) must be in range 1 <= RETRIES <= 20") return values,args def exit(self, status=0, msg=None): @@ -175,11 +182,12 @@ def ping_addresses(addresses): 6: ['fping6'], } fpingflags = [ - # These settings gives ca 5 seconds timeout for unreachable addresses + # These settings, with default 9 retries, gives ca 5 seconds timeout + # for unreachable addresses '-i10', # -i10 is the fastest fping allows without being root '-t250', '-B1.125', - '-r9', + '-r%d' % (OPTIONS.retries,), ] all_output = [] for ipver,addrs in addresses.items():