SF.net SVN: nagiosplug:[2258] nagiosplug/trunk

[email protected]
Newsgroups gmane.network.nagios.plugins.cvs
Message-ID <[email protected]>
Revision: 2258
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2258&view=rev
Author:   dermoth
Date:     2009-10-22 07:27:23 +0000 (Thu, 22 Oct 2009)

Log Message:
-----------
Fix usage of repeated -o options in check_snmp

From: Thomas Guyot-Sionnest <[email protected]>

Modified Paths:
--------------
    nagiosplug/trunk/NEWS
    nagiosplug/trunk/plugins/check_snmp.c
    nagiosplug/trunk/plugins/t/check_snmp.t

Modified: nagiosplug/trunk/NEWS
===================================================================
--- nagiosplug/trunk/NEWS	2009-10-16 02:15:16 UTC (rev 2257)
+++ nagiosplug/trunk/NEWS	2009-10-22 07:27:23 UTC (rev 2258)
@@ -6,6 +6,7 @@
 	Fix check_ircd binding to wrong interface (#668778)
 	Add proxy-authorization option to check_http (Marcel Kuiper - #1323230, Bryan Irvine - #2863925)
 	check_icmp now increment the sequence counter in each packet
+	Fix usage of repeated -o options in check_snmp
 	WARNINGS
 	Updated developer documentation to say that performance labels should not have an equals sign or
 	single quote in the label

Modified: nagiosplug/trunk/plugins/check_snmp.c
===================================================================
--- nagiosplug/trunk/plugins/check_snmp.c	2009-10-16 02:15:16 UTC (rev 2257)
+++ nagiosplug/trunk/plugins/check_snmp.c	2009-10-22 07:27:23 UTC (rev 2258)
@@ -506,7 +506,7 @@
 					 */
 					needmibs = TRUE;
 			}
-			oids = calloc(MAX_OIDS, sizeof (char *));
+			if (!oids) oids = calloc(MAX_OIDS, sizeof (char *));
 			for (ptr = strtok(optarg, ", "); ptr != NULL && j < MAX_OIDS; ptr = strtok(NULL, ", "), j++) {
 				oids[j] = strdup(ptr);
 			}

Modified: nagiosplug/trunk/plugins/t/check_snmp.t
===================================================================
--- nagiosplug/trunk/plugins/t/check_snmp.t	2009-10-16 02:15:16 UTC (rev 2257)
+++ nagiosplug/trunk/plugins/t/check_snmp.t	2009-10-22 07:27:23 UTC (rev 2258)
@@ -8,7 +8,7 @@
 use Test::More;
 use NPTest;
 
-my $tests = 46;
+my $tests = 8+38+2+2;
 plan tests => $tests;
 my $res;
 
@@ -44,10 +44,10 @@
 	like( $res->output, "/check_snmp: Invalid SNMP version - 3c/" );
 
 	SKIP: {
-		skip "no snmp host defined", 34 if ( ! $host_snmp );
+		skip "no snmp host defined", 38 if ( ! $host_snmp );
 
 		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -w 1: -c 1:");
-		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying uptime" ); 
+		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying uptime" );
 		like($res->output, '/^SNMP OK - (\d+)/', "String contains SNMP OK");
 		$res->output =~ /^SNMP OK - (\d+)/;
 		my $value = $1;
@@ -59,19 +59,27 @@
 		like($res->output, '/^SNMP OK - \d+/', "String contains SNMP OK");
 
 		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysDescr.0");
-		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying sysDescr" ); 
+		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying sysDescr" );
 		unlike($res->perf_output, '/sysDescr/', "Perfdata doesn't contain string values");
 
+		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysDescr.0,system.sysDescr.0");
+		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying two string OIDs, comma-separated" );
+		like($res->output, '/^SNMP OK - /', "String contains SNMP OK");
+
+		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysDescr.0 -o system.sysDescr.0");
+		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying two string OIDs, repeated option" );
+		like($res->output, '/^SNMP OK - /', "String contains SNMP OK");
+
 		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w 1:1 -c 1:1");
-		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying hrSWRunIndex.1" ); 
+		cmp_ok( $res->return_code, '==', 0, "Exit OK when querying hrSWRunIndex.1" );
 		like($res->output, '/^SNMP OK - 1\s.*$/', "String fits SNMP OK and output format");
 
 		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w 0   -c 1:");
-		cmp_ok( $res->return_code, '==', 1, "Exit WARNING when querying hrSWRunIndex.1 and warn-th doesn't apply " ); 
+		cmp_ok( $res->return_code, '==', 1, "Exit WARNING when querying hrSWRunIndex.1 and warn-th doesn't apply " );
 		like($res->output, '/^SNMP WARNING - \*1\*\s.*$/', "String matches SNMP WARNING and output format");
 
 		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunIndex.1 -w  :0 -c 0");
-		cmp_ok( $res->return_code, '==', 2, "Exit CRITICAL when querying hrSWRunIndex.1 and crit-th doesn't apply" ); 
+		cmp_ok( $res->return_code, '==', 2, "Exit CRITICAL when querying hrSWRunIndex.1 and crit-th doesn't apply" );
 		like($res->output, '/^SNMP CRITICAL - \*1\*\s.*$/', "String matches SNMP CRITICAL and output format");
 
 		$res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o ifIndex.2,ifIndex.1 -w 1:2 -c 1:2");
@@ -123,14 +131,14 @@
 	SKIP: {
 		skip "no non responsive host defined", 2 if ( ! $host_nonresponsive );
 		$res = NPTest->testCmd( "./check_snmp -H $host_nonresponsive -C np_foobar -o system.sysUpTime.0 -w 1: -c 1:");
-		cmp_ok( $res->return_code, '==', 3, "Exit UNKNOWN with non responsive host" ); 
+		cmp_ok( $res->return_code, '==', 3, "Exit UNKNOWN with non responsive host" );
 		like($res->output, '/External command error: Timeout: No Response from /', "String matches timeout problem");
 	}
 
 	SKIP: {
 		skip "no non invalid host defined", 2 if ( ! $hostname_invalid );
 		$res = NPTest->testCmd( "./check_snmp -H $hostname_invalid   -C np_foobar -o system.sysUpTime.0 -w 1: -c 1:");
-		cmp_ok( $res->return_code, '==', 3, "Exit UNKNOWN with non responsive host" ); 
+		cmp_ok( $res->return_code, '==', 3, "Exit UNKNOWN with non responsive host" );
 		like($res->output, '/External command error: .*(nosuchhost|Name or service not known|Unknown host)/', "String matches invalid host");
 	}
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.