diff options
author | Linus Nordberg <linus@nordu.net> | 2011-07-03 10:13:51 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2011-07-03 10:13:51 +0200 |
commit | 074f7dfe1934273a2336414c135b2494fda08af3 (patch) | |
tree | adf125a61eab22b6d2e31f720a8a33d284b8fabc /lib/conf.c | |
parent | 1e71b7c57ede27a9cecb0d78d23fb4e48a85479c (diff) |
Handle configuration errors better.
Diffstat (limited to 'lib/conf.c')
-rw-r--r-- | lib/conf.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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"); |