aboutsummaryrefslogtreecommitdiffstats
path: root/src/confparser.c
diff options
context:
space:
mode:
authorgramanas <anastasis.gramm2@gmail.com>2018-10-25 19:06:34 +0300
committergramanas <anastasis.gramm2@gmail.com>2018-10-25 19:06:34 +0300
commitc3267a360860de225fa0af666d99f60d03266249 (patch)
tree6d9db577082bec43074c07194d14ce9694754ce0 /src/confparser.c
parentd29c929e444d69ea7d4ce146f67f4c8df36baa95 (diff)
downloadck-c3267a360860de225fa0af666d99f60d03266249.tar.gz
ck-c3267a360860de225fa0af666d99f60d03266249.tar.bz2
ck-c3267a360860de225fa0af666d99f60d03266249.zip
Fix config parser bug
Diffstat (limited to 'src/confparser.c')
-rw-r--r--src/confparser.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/confparser.c b/src/confparser.c
index 95c8704..4599a84 100644
--- a/src/confparser.c
+++ b/src/confparser.c
@@ -17,8 +17,10 @@ ERRLOG(configfile);
const char * const CONFIG_NAME = "/ckrc";
void conf_values_initialize(Conf *c) {
- c->scrt_dir = NULL;
- c->vc_dir = NULL;
+#define X(var, str, name) \
+ c->var = NULL;
+ CONFIG_VARIABLES_TABLE
+#undef X
}
int remove_newline(char buff[]) {
@@ -67,6 +69,7 @@ ConfigParserResult parse(Conf *conf, UserOpt *opt) {
char confName[STR_L];
make_config_name(confName, opt->confDir);
if ((confPtr = fopen(confName, "r")) == NULL) {
+ ERR("%s is not readable, check the permissions.", confName)
return CPR_NO_CONFIG_FILE;
}
int flag = 1;
@@ -97,17 +100,14 @@ ConfigParserResult parse(Conf *conf, UserOpt *opt) {
else {
ERR("Config error in line: %s", line);
}
+ flag = 0;
}
}
-#define X(var, str) \
- if (conf->var == NULL) { \
- flag = 0; \
- CONFIG_VARIABLES_TABLE
-#undef X
+
if (flag) {
return CPR_OK;
}
- return CPR_NO_CONFIG_FILE;
+ return CPR_WRONG_CONFIG;
}
int config_file_parse(Conf *conf, UserOpt *opt) {
@@ -116,18 +116,17 @@ int config_file_parse(Conf *conf, UserOpt *opt) {
#define X(var,str,name) \
case CPR_WRONG_##var: \
ERR("%s %s defined in config doesn't exist", name, conf->var); \
- return 0; \
+ return -1; \
break;
CONFIG_VARIABLES_TABLE
#undef X
- case CPR_NO_CONFIG_FILE:
- ERR("The config file specified could not be found");
+ case CPR_OK:
return 0;
+ case CPR_NO_CONFIG_FILE:
case CPR_WRONG_CONFIG:
- ERR("Config help\n");
- case CPR_OK:
- return 1;
+ break;
}
+ return -1;
}
void free_conf(Conf *conf) {