/usr/share/perl5/Smokeping/probes/EchoPingPlugin.pm is in smokeping 2.6.11-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | package Smokeping::probes::EchoPingPlugin;
=head1 301 Moved Permanently
This is a Smokeping probe module. Please use the command
C<smokeping -man Smokeping::probes::EchoPingPlugin>
to view the documentation or the command
C<smokeping -makepod Smokeping::probes::EchoPingPlugin>
to generate the POD document.
=cut
sub pod_hash {
return {
name => <<DOC,
Smokeping::probes::EchoPingPlugin - a basis for using echoping(1) plugins as probes for SmokePing
DOC
overview => <<DOC,
Measures roundtrip times for SmokePing with an echoping(1) plugin. The plugins
currently shipped with echoping are implemented as separate probes based
on this class, but the class can also be used directly.
DOC
authors => <<'DOC',
Niko Tyni <ntyni@iki.fi>
DOC
notes => <<'DOC',
The I<fill>, I<size> and I<udp> EchoPing variables are not valid by default for EchoPingPlugin -derived probes.
Plugins are available starting with echoping version 6.
DOC
see_also => <<DOC,
L<Smokeping::probes::EchoPing>,
L<Smokeping::probes::EchoPingLDAP>,
L<Smokeping::probes::EchoPingDNS>,
L<Smokeping::probes::EchoPingWhois>
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 post_args {
my $self = shift;
my $target = shift;
return $self->plugin_args($target);
}
# derived classes should override this
sub plugin_args {
my $self = shift;
my $target = shift;
return ();
}
sub proto_args {
my $self = shift;
my $target = shift;
my $plugin = $target->{vars}{plugin};
return ("-m", $plugin);
}
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, {
_mandatory => [ 'plugin' ],
plugin => {
_doc => <<DOC,
The echoping plugin that will be used. See echoping(1) for details.
This can either be the name of the plugin or a full path to the
plugin shared object.
DOC
_example => "random",
},
pluginargs => {
_doc => <<DOC,
Any extra arguments needed by the echoping plugin specified with the
I<pluginname> variable. These are generally provided by the subclass probe.
DOC
_example => "-p plugin_specific_arg",
},
},
);
}
1;
|