summaryrefslogtreecommitdiffstats
path: root/lib/Smokeping/probes/EchoPingPlugin.pm
diff options
context:
space:
mode:
authorNiko Tyni <ntyni@iki.fi>2007-04-14 20:11:48 +0200
committerNiko Tyni <ntyni@iki.fi>2007-04-14 20:11:48 +0200
commita014a07efb6b9ec156de0e8d49b9630c08ac6bc7 (patch)
tree9624d1d734c1027b12f597f21f4d9b829b5f2040 /lib/Smokeping/probes/EchoPingPlugin.pm
parente4e9810641b2804bdf25b5adf824e41bf90625e7 (diff)
downloadsmokeping-a014a07efb6b9ec156de0e8d49b9630c08ac6bc7.tar.gz
smokeping-a014a07efb6b9ec156de0e8d49b9630c08ac6bc7.tar.xz
r1045@rispa: niko | 2007-04-14 11:26:44 +0300
fix post_args
Diffstat (limited to 'lib/Smokeping/probes/EchoPingPlugin.pm')
-rw-r--r--lib/Smokeping/probes/EchoPingPlugin.pm22
1 files changed, 15 insertions, 7 deletions
diff --git a/lib/Smokeping/probes/EchoPingPlugin.pm b/lib/Smokeping/probes/EchoPingPlugin.pm
index 69c8596..f815030 100644
--- a/lib/Smokeping/probes/EchoPingPlugin.pm
+++ b/lib/Smokeping/probes/EchoPingPlugin.pm
@@ -54,7 +54,14 @@ sub _init {
sub post_args {
my $self = shift;
my $target = shift;
- return $target->{vars}{pluginargs};
+ return $self->plugin_args($target);
+}
+
+# derived classes should override this
+sub plugin_args {
+ my $self = shift;
+ my $target = shift;
+ return ();
}
sub proto_args {
@@ -67,10 +74,9 @@ sub proto_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 plugins")
- if `$bin -m random 127.0.0.1 2>&1` =~ /(not compiled|invalid option|usage)/i;
+ croak("Your echoping binary doesn't support plugins. At least version 6 is required.")
+ if `$bin -m improbable_plugin_name 127.0.0.1 2>&1` =~ /invalid option/i;
$self->SUPER::test_usage;
return;
}
@@ -86,10 +92,12 @@ sub targetvars {
delete $h->{fill};
delete $h->{size};
return $class->_makevars($h, {
- pluginname => {
+ _mandatory => [ 'plugin' ],
+ plugin => {
_doc => <<DOC,
-The name of the echoping plugin that will be used. See echoping(1)
-for details.
+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",
},