X-Git-Url: http://www.project-moonshot.org/gitweb/?p=radsecproxy.git;a=blobdiff_plain;f=lib%2Fconf.c;h=e3d5522295ae79627d8162cb2815f5b39b675e7e;hp=06ae3aa7bd80aaab50c32c225725fe0a5c2e8e37;hb=074f7dfe1934273a2336414c135b2494fda08af3;hpb=1e71b7c57ede27a9cecb0d78d23fb4e48a85479c diff --git a/lib/conf.c b/lib/conf.c index 06ae3aa..e3d5522 100644 --- a/lib/conf.c +++ b/lib/conf.c @@ -40,8 +40,6 @@ int rs_context_read_config(struct rs_context *ctx, const char *config_file) { - /* FIXME: Missing some error handling! */ - cfg_t *cfg, *cfg_realm, *cfg_server; int i, j; const char *s; @@ -74,6 +72,8 @@ rs_context_read_config(struct rs_context *ctx, const char *config_file) }; cfg = cfg_init (opts, CFGF_NONE); + if (cfg == NULL) + return rs_err_ctx_push (ctx, RSE_CONFIG, "unable to initialize libconfuse"); if (cfg_parse (cfg, config_file) == CFG_PARSE_ERROR) return rs_err_ctx_push (ctx, RSE_CONFIG, "%s: invalid configuration file", config_file); @@ -139,6 +139,8 @@ rs_context_read_config(struct rs_context *ctx, const char *config_file) p->realm = r; cfg_server = cfg_getnsec (cfg_realm, "server", j); + /* FIXME: Handle resolve errors, possibly by postponing name + resolution. */ rs_resolv (&p->addr, r->type, cfg_getstr (cfg_server, "hostname"), cfg_getstr (cfg_server, "service")); p->secret = cfg_getstr (cfg_server, "secret");