diff --git a/lib/parse_ini.c b/lib/parse_ini.c
index 67d8367f5503c21a7fd5cd3217bcdd60f055ac6b..96551cfe881a459daf196ce34ce45c9fe8655577 100644 (file)
--- a/lib/parse_ini.c
+++ b/lib/parse_ini.c
*****************************************************************************/
#include "common.h"
-#include "parse_ini.h"
#include "utils_base.h"
+#include "parse_ini.h"
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
-/* FIXME: N::P dies if section is not found */
-/* FIXME: N::P dies if config file is not found */
+/* TODO: die like N::P if config file is not found */
/* np_ini_info contains the result of parsing a "locator" in the format
* [stanza_name][@config_filename] (check_foo@/etc/foo.ini, for example)
/* if a file was specified or if we're using the default file */
if(i.file != NULL && strlen(i.file) > 0){
if(strcmp(i.file, "-")==0){
- inifile=stdout; /* FIXME: Shouldn't it be 'stdin' ??? */
+ inifile=stdin;
} else {
inifile=fopen(i.file, "r");
}
if(inifile==NULL) die(STATE_UNKNOWN, _("Can't read config file"));
- if(read_defaults(inifile, i.stanza, &defaults)==FALSE && strcmp(i.stanza, default_section) && inifile!=stdout) { /* FIXME: Shouldn't it be 'stdin' ??? */
- /* We got nothing, try the default section */
- rewind(inifile);
- read_defaults(inifile, default_section, &defaults);
- }
+ if(read_defaults(inifile, i.stanza, &defaults)==FALSE)
+ die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), i.stanza, i.file);
free(i.file);
- if(inifile!=stdout) fclose(inifile); /* FIXME: Shouldn't it be 'stdin' ??? */
+ if(inifile!=stdin) fclose(inifile);
}
free(i.stanza);
return defaults;