diff options
author | Niko Tyni <ntyni@iki.fi> | 2007-04-14 20:11:48 +0200 |
---|---|---|
committer | Niko Tyni <ntyni@iki.fi> | 2007-04-14 20:11:48 +0200 |
commit | a014a07efb6b9ec156de0e8d49b9630c08ac6bc7 (patch) | |
tree | 9624d1d734c1027b12f597f21f4d9b829b5f2040 /lib/Smokeping/probes/EchoPingPlugin.pm | |
parent | e4e9810641b2804bdf25b5adf824e41bf90625e7 (diff) | |
download | smokeping-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.pm | 22 |
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", }, |