package Smokeping::probes::EchoPingPlugin; =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 by default for EchoPingPlugin -derived probes. DOC see_also => < DOC } } use strict; use base qw(Smokeping::probes::EchoPing); use Carp; sub _init { my $self = shift; # plugins don't generally fit with filling, size or udp. my $arghashref = $self->features; delete $arghashref->{size}; delete $arghashref->{fill}; delete $arghashref->{udp}; } sub proto_args { my $self = shift; my $target = shift; my $plugin = $target->{vars}{plugin}; return ("-m", $plugin); } 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 plugins") if `$bin -m random 127.0.0.1 2>&1` =~ /(not compiled|invalid option|usage)/i; $self->SUPER::test_usage; return; } sub ProbeDesc($) { return "Pings using an echoping(1) plugin"; } sub targetvars { my $class = shift; my $h = $class->SUPER::targetvars; delete $h->{udp}; delete $h->{fill}; delete $h->{size}; return $class->_makevars($h, { }); } 1;