summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortonvoon@users.sourceforge.net <tonvoon@users.sourceforge.net>2009-06-05 17:01:22 (GMT)
committerThomas Guyot-Sionnest <dermoth@aei.ca>2009-06-06 06:16:11 (GMT)
commit673108c6cd8c84f72db0ddb2997b96cbe28ba5ea (patch)
treec981e66bd9ab75637a916f60ca955d42bb38f1eb
parentb0ff1e4262fa7f09c9cdb91206b6d2a2a1aa06a7 (diff)
downloadmonitoring-plugin-perl-673108c6cd8c84f72db0ddb2997b96cbe28ba5ea.tar.gz
Fixed parsing when two = signs within the performance data portion
-rw-r--r--Changes3
-rw-r--r--lib/Nagios/Plugin.pm2
-rw-r--r--lib/Nagios/Plugin/Functions.pm2
-rw-r--r--lib/Nagios/Plugin/Performance.pm9
-rw-r--r--t/Nagios-Plugin-Performance.t6
5 files changed, 18 insertions, 4 deletions
diff --git a/Changes b/Changes
index a751e2e..1679d1c 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
1Revision history for Perl module Nagios::Plugin. 1Revision history for Perl module Nagios::Plugin.
2 2
30.33 5th June 2009
4 - Fixed infinite loop when invalid performance data with multiple = were present
5
30.32 3rd March 2009 60.32 3rd March 2009
4 - Handle performance data with quotes in the label (thanks to Kang) 7 - Handle performance data with quotes in the label (thanks to Kang)
5 - Die if default config file is not available and --extra-opts is set 8 - Die if default config file is not available and --extra-opts is set
diff --git a/lib/Nagios/Plugin.pm b/lib/Nagios/Plugin.pm
index bd0d483..98c2896 100644
--- a/lib/Nagios/Plugin.pm
+++ b/lib/Nagios/Plugin.pm
@@ -25,7 +25,7 @@ our @EXPORT_OK = qw(%ERRORS);
25# CPAN stupidly won't index this module without a literal $VERSION here, 25# CPAN stupidly won't index this module without a literal $VERSION here,
26# so we're forced to duplicate it explicitly 26# so we're forced to duplicate it explicitly
27# Make sure you update $Nagios::Plugin::Functions::VERSION too 27# Make sure you update $Nagios::Plugin::Functions::VERSION too
28our $VERSION = "0.32"; 28our $VERSION = "0.33";
29 29
30sub new { 30sub new {
31 my $class = shift; 31 my $class = shift;
diff --git a/lib/Nagios/Plugin/Functions.pm b/lib/Nagios/Plugin/Functions.pm
index 165aafa..9a8272a 100644
--- a/lib/Nagios/Plugin/Functions.pm
+++ b/lib/Nagios/Plugin/Functions.pm
@@ -12,7 +12,7 @@ use Params::Validate qw(:types validate);
12use Math::Calc::Units; 12use Math::Calc::Units;
13 13
14# Remember to update Nagios::Plugins as well 14# Remember to update Nagios::Plugins as well
15our $VERSION = "0.32"; 15our $VERSION = "0.33";
16 16
17our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT); 17our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT);
18 18
diff --git a/lib/Nagios/Plugin/Performance.pm b/lib/Nagios/Plugin/Performance.pm
index 6b85dc0..9248fea 100644
--- a/lib/Nagios/Plugin/Performance.pm
+++ b/lib/Nagios/Plugin/Performance.pm
@@ -87,7 +87,14 @@ sub parse_perfstring {
87 # If there is more than 1 equals sign, split it out and parse individually 87 # If there is more than 1 equals sign, split it out and parse individually
88 if (@{[$perfstring =~ /=/g]} > 1) { 88 if (@{[$perfstring =~ /=/g]} > 1) {
89 $perfstring =~ s/^(.*?=.*?)\s//; 89 $perfstring =~ s/^(.*?=.*?)\s//;
90 $obj = $class->_parse($1); 90 if (defined $1) {
91 $obj = $class->_parse($1);
92 } else {
93 # This could occur if perfdata was soemthing=value=
94 # Since this is invalid, we reset the string and continue
95 $perfstring = "";
96 $obj = $class->_parse($perfstring);
97 }
91 } else { 98 } else {
92 $obj = $class->_parse($perfstring); 99 $obj = $class->_parse($perfstring);
93 $perfstring = ""; 100 $perfstring = "";
diff --git a/t/Nagios-Plugin-Performance.t b/t/Nagios-Plugin-Performance.t
index bbf0b20..6904f4c 100644
--- a/t/Nagios-Plugin-Performance.t
+++ b/t/Nagios-Plugin-Performance.t
@@ -1,4 +1,5 @@
1 1
2use warnings;
2use strict; 3use strict;
3use Test::More; 4use Test::More;
4use Nagios::Plugin::Functions; 5use Nagios::Plugin::Functions;
@@ -40,7 +41,7 @@ my @test = (
40 }, 41 },
41); 42);
42 43
43plan tests => (11 * scalar @test) + 175; 44plan tests => (11 * scalar @test) + 176;
44 45
45use_ok('Nagios::Plugin::Performance'); 46use_ok('Nagios::Plugin::Performance');
46diag "\nusing Nagios::Plugin::Performance revision ". $Nagios::Plugin::Performance::VERSION . "\n" if $ENV{TEST_VERBOSE}; 47diag "\nusing Nagios::Plugin::Performance revision ". $Nagios::Plugin::Performance::VERSION . "\n" if $ENV{TEST_VERBOSE};
@@ -349,4 +350,7 @@ is( $p[2]->min, undef, "min ok");
349is( $p[2]->max, undef, "max ok"); 350is( $p[2]->max, undef, "max ok");
350 351
351 352
353@p = Nagios::Plugin::Performance->parse_perfstring("processes=9;WKFLSV32.exe;9=");
354is_deeply( \@p, [], "Fails parsing correctly");
355
352# add_perfdata tests in t/Nagios-Plugin-01.t 356# add_perfdata tests in t/Nagios-Plugin-01.t