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.