diff options
author | Steve Kemp <steve@steve.org.uk> | 2015-03-04 10:01:41 +0000 |
---|---|---|
committer | Steve Kemp <steve@steve.org.uk> | 2015-03-04 10:01:41 +0000 |
commit | 925ebf966e49045556b94befe0dd4d36863350af (patch) | |
tree | 8c57980bc4528069c3fe8789a3e8335772a02e58 | |
parent | e348848c58c7bde5deb147935b61a023ed81158a (diff) |
Allow tests to be qualified IPv4/IPv6-only.
Via "ipv6_only" and "IPv4_only"
-rw-r--r-- | lib/custodian/protocoltest/ping.rb | 30 | ||||
-rw-r--r-- | lib/custodian/protocoltest/tcp.rb | 29 |
2 files changed, 49 insertions, 10 deletions
diff --git a/lib/custodian/protocoltest/ping.rb b/lib/custodian/protocoltest/ping.rb index 8f3911d..37722c2 100644 --- a/lib/custodian/protocoltest/ping.rb +++ b/lib/custodian/protocoltest/ping.rb @@ -117,17 +117,37 @@ module Custodian # + # Both types? + # + do_ipv6 = true + do_ipv4 = true + + # + # Allow the test to disable one/both + # + if ( @line =~ /ipv4_only/ ) + do_ipv6 = false + end + if ( @line =~ /ipv6_only/ ) + do_ipv4 = false + end + + # # OK if it didn't look like an IP address then attempt to # look it up, as both IPv4 and IPv6. - # + # begin timeout( period ) do Resolv::DNS.open do |dns| - ress = dns.getresources(@host, Resolv::DNS::Resource::IN::A) - ress.map { |r| ips.push( r.address.to_s ) } - ress = dns.getresources(@host, Resolv::DNS::Resource::IN::AAAA) - ress.map { |r| ips.push( r.address.to_s ) } + if ( do_ipv4 ) + ress = dns.getresources(@host, Resolv::DNS::Resource::IN::A) + ress.map { |r| ips.push( r.address.to_s ) } + end + if ( do_ipv6 ) + ress = dns.getresources(@host, Resolv::DNS::Resource::IN::AAAA) + ress.map { |r| ips.push( r.address.to_s ) } + end end end rescue Timeout::Error => e diff --git a/lib/custodian/protocoltest/tcp.rb b/lib/custodian/protocoltest/tcp.rb index 7bceeac..3fd4129 100644 --- a/lib/custodian/protocoltest/tcp.rb +++ b/lib/custodian/protocoltest/tcp.rb @@ -72,7 +72,6 @@ module Custodian # @host = line.split( /\s+/)[0] - # # Is this test inverted? # @@ -176,6 +175,21 @@ module Custodian # end + # + # Both types? + # + do_ipv6 = true + do_ipv4 = true + + # + # Allow the test to disable one/both + # + if ( @line =~ /ipv4_only/ ) + do_ipv6 = false + end + if ( @line =~ /ipv6_only/ ) + do_ipv4 = false + end # @@ -186,10 +200,15 @@ module Custodian timeout( period ) do Resolv::DNS.open do |dns| - ress = dns.getresources(host, Resolv::DNS::Resource::IN::A) - ress.map { |r| ips.push( r.address.to_s ) } - ress = dns.getresources(host, Resolv::DNS::Resource::IN::AAAA) - ress.map { |r| ips.push( r.address.to_s ) } + + if ( do_ipv4 ) + ress = dns.getresources(host, Resolv::DNS::Resource::IN::A) + ress.map { |r| ips.push( r.address.to_s ) } + end + if ( do_ipv6 ) + ress = dns.getresources(host, Resolv::DNS::Resource::IN::AAAA) + ress.map { |r| ips.push( r.address.to_s ) } + end end end rescue Timeout::Error => e |