diff options
Diffstat (limited to 'lib/conf.c')
-rw-r--r-- | lib/conf.c | 35 |
1 files changed, 19 insertions, 16 deletions
@@ -101,37 +101,39 @@ rs_context_read_config(struct rs_context *ctx, const char *config_file) for (i = 0; i < cfg_size (cfg, "realm"); i++) { - struct rs_realm *r = rs_calloc (ctx, 1, sizeof(*r)); + struct rs_realm *r = NULL; const char *typestr; - if (!r) + r = rs_calloc (ctx, 1, sizeof(*r)); + if (r == NULL) return rs_err_ctx_push_fl (ctx, RSE_NOMEM, __FILE__, __LINE__, NULL); - if (config->realms) + if (config->realms != NULL) { r->next = config->realms->next; config->realms->next = r; } else + { config->realms = r; + } cfg_realm = cfg_getnsec (cfg, "realm", i); - /* We use a copy of return value of cfg_title since it's a - const. */ + /* We use a copy of the return value of cfg_title() since it's const. */ s = cfg_title (cfg_realm); if (s == NULL) return rs_err_ctx_push_fl (ctx, RSE_CONFIG, __FILE__, __LINE__, "missing realm name"); - r->name = strdup (s); /* FIXME: Don't strdup. */ - if (!r->name) + r->name = strdup (s); + if (r->name == NULL) return rs_err_ctx_push_fl (ctx, RSE_NOMEM, __FILE__, __LINE__, NULL); typestr = cfg_getstr (cfg_realm, "type"); - if (!strcmp (typestr, "UDP")) + if (strcmp (typestr, "UDP") == 0) r->type = RS_CONN_TYPE_UDP; - else if (!strcmp (typestr, "TCP")) + else if (strcmp (typestr, "TCP") == 0) r->type = RS_CONN_TYPE_TCP; - else if (!strcmp (typestr, "TLS")) + else if (strcmp (typestr, "TLS") == 0) r->type = RS_CONN_TYPE_TLS; - else if (!strcmp (typestr, "DTLS")) + else if (strcmp (typestr, "DTLS") == 0) r->type = RS_CONN_TYPE_DTLS; else return rs_err_ctx_push_fl (ctx, RSE_CONFIG, __FILE__, __LINE__, @@ -148,7 +150,7 @@ rs_context_read_config(struct rs_context *ctx, const char *config_file) for (j = 0; j < cfg_size (cfg_realm, "server"); j++) { struct rs_peer *p = peer_create (ctx, &r->peers); - if (!p) + if (p == NULL) return rs_err_ctx_push_fl (ctx, RSE_NOMEM, __FILE__, __LINE__, NULL); p->realm = r; @@ -162,9 +164,9 @@ rs_context_read_config(struct rs_context *ctx, const char *config_file) } } - /* Save config object in context, for freeing in - rs_context_destroy(). */ - ctx->config->cfg = cfg; + /* Save config object in context, for freeing in rs_context_destroy(). */ + ctx->config->cfg = cfg; + return RSE_OK; } @@ -174,7 +176,8 @@ rs_conf_find_realm(struct rs_context *ctx, const char *name) struct rs_realm *r; for (r = ctx->config->realms; r; r = r->next) - if (!strcmp (r->name, name)) + if (strcmp (r->name, name) == 0) return r; + return NULL; } |