summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Kemp <steve@steve.org.uk>2015-03-04 10:01:41 +0000
committerSteve Kemp <steve@steve.org.uk>2015-03-04 10:01:41 +0000
commit925ebf966e49045556b94befe0dd4d36863350af (patch)
tree8c57980bc4528069c3fe8789a3e8335772a02e58
parente348848c58c7bde5deb147935b61a023ed81158a (diff)
Allow tests to be qualified IPv4/IPv6-only.
Via "ipv6_only" and "IPv4_only"
-rw-r--r--lib/custodian/protocoltest/ping.rb30
-rw-r--r--lib/custodian/protocoltest/tcp.rb29
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