package Smokeping::probes::EchoPingDNS; =head1 301 Moved Permanently This is a Smokeping probe module. Please use the command C to view the documentation or the command C to generate the POD document. =cut sub pod_hash { return { name => < < <<'DOC', Niko Tyni DOC notes => <<'DOC', The I, I and I EchoPing variables are not valid. Plugins, including echoping_dns, are available starting with echoping version 6. DOC see_also => <, L DOC } } use strict; use base qw(Smokeping::probes::EchoPingPlugin); use Carp; sub plugin_args { my $self = shift; my $target = shift; my @args = ("-t", $target->{vars}{dns_type}); my $tcp = $target->{vars}{dns_tcp}; if ($tcp and $tcp ne "no") { push @args, "--tcp"; } push @args, $target->{vars}{dns_request}; return @args; } sub test_usage { my $self = shift; my $bin = $self->{properties}{binary}; # side effect: this sleeps for a random time between 0 and 1 seconds # is there anything smarter to do? croak("Your echoping binary doesn't support the dns plugin") if `$bin -m dns 127.0.0.1 2>&1` =~ /(not compiled|invalid option|usage)/i; $self->SUPER::test_usage; return; } sub ProbeDesc($) { return "DNS pings using the echoping_dns plugin"; } sub targetvars { my $class = shift; my $h = $class->SUPER::targetvars; delete $h->{udp}; delete $h->{fill}; delete $h->{size}; $h->{plugin}{default} = 'dns'; return $class->_makevars($h, { _mandatory => [ 'dns_request' ], dns_request => { _doc => < 'example.org', }, dns_type => { _doc => < 'AAAA', _default => 'A', }, dns_tcp => { _doc => < 'yes', }, }, ); } 1;