SF.net SVN: nagiosplug: [1948] nagiosplug/trunk/lib

[email protected]
Newsgroups gmane.network.nagios.plugins.cvs
Message-ID <[email protected]>
Revision: 1948
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=1948&view=rev
Author:   dermoth
Date:     2008-03-15 13:47:43 -0700 (Sat, 15 Mar 2008)

Log Message:
-----------
- Make equal-less parameters illegal
- parameters without argument after '=' are now assumed to be argument-less
- Add a testcase for space in stanza and various argument-less parameters

Modified Paths:
--------------
    nagiosplug/trunk/lib/parse_ini.c
    nagiosplug/trunk/lib/tests/plugin.ini
    nagiosplug/trunk/lib/tests/test_ini.c

Modified: nagiosplug/trunk/lib/parse_ini.c
===================================================================
--- nagiosplug/trunk/lib/parse_ini.c	2008-03-15 20:34:15 UTC (rev 1947)
+++ nagiosplug/trunk/lib/parse_ini.c	2008-03-15 20:47:43 UTC (rev 1948)
@@ -212,6 +212,7 @@
 		else optend=NULL;
 	}
 	if(optend==NULL) optend=eqptr;
+//printf("o1: %c\n", *optptr[optend]);
 	--optend;
 	/* ^[[:space:]]*=foo is a syntax error */
 	if(optptr==eqptr) die(STATE_UNKNOWN, _("Config file error\n"));
@@ -242,6 +243,8 @@
 		equals=1;
 		cfg_len+=1;
 	}
+	/* A line with no equal sign isn't valid */
+	if(equals==0) die(STATE_UNKNOWN, _("Config file error\n"));
 
 	/* okay, now we have all the info we need, so we create a new np_arg_list
 	 * element and set the argument...
@@ -260,8 +263,8 @@
 		read_pos+=2;
 	}
 	strncpy(&optnew->arg[read_pos], optptr, opt_len); read_pos+=opt_len;
-	if(equals) optnew->arg[read_pos++]='=';
 	if(value) {
+		optnew->arg[read_pos++]='=';
 		strncpy(&optnew->arg[read_pos], valptr, val_len); read_pos+=val_len;
 	}
 	optnew->arg[read_pos]='\0';

Modified: nagiosplug/trunk/lib/tests/plugin.ini
===================================================================
--- nagiosplug/trunk/lib/tests/plugin.ini	2008-03-15 20:34:15 UTC (rev 1947)
+++ nagiosplug/trunk/lib/tests/plugin.ini	2008-03-15 20:47:43 UTC (rev 1948)
@@ -7,4 +7,9 @@
 u=admin
 p=secret
 
+[check space_and_flags]
+foo=bar
+a=
+b=
+bar=
 

Modified: nagiosplug/trunk/lib/tests/test_ini.c
===================================================================
--- nagiosplug/trunk/lib/tests/test_ini.c	2008-03-15 20:34:15 UTC (rev 1947)
+++ nagiosplug/trunk/lib/tests/test_ini.c	2008-03-15 20:47:43 UTC (rev 1948)
@@ -52,18 +52,18 @@
 {
 	char *optstr=NULL;
 
-	plan_tests(9);
+	plan_tests(10);
 
 	optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk"));
-	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank="), "config-tiny.ini's section as expected");
+	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "config-tiny.ini's section as expected");
 	my_free(optstr);
 
 	optstr=list2str(np_get_defaults("@./config-tiny.ini", "section"));
-	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank="), "Used default section name, without specific");
+	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "Used default section name, without specific");
 	my_free(optstr);
 
 	optstr=list2str(np_get_defaults("section_unknown@./config-tiny.ini", "section"));
-	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank="), "Used default section name over specified one");
+	ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "Used default section name over specified one");
 	my_free(optstr);
 
 	optstr=list2str(np_get_defaults("Section Two@./config-tiny.ini", "check_disk"));
@@ -90,6 +90,10 @@
 	ok( !strcmp(optstr, "-u=admin -p=secret"), "plugin.ini's check_mysql2 as expected");
 	my_free(optstr);
 
+	optstr=list2str(np_get_defaults("check space_and_flags@./plugin.ini", "check_disk"));
+	ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments");
+	my_free(optstr);
+
 	return exit_status();
 }
 


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

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
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.