/* TBD -- support more than one filter entry per RP Client? */
if (NULL == (rp->filter = tr_cfg_parse_one_filter(trc, jfilt, rc))) {
fprintf(stderr, "tr_cfg_parse_one_rp_client: Error parsing filter.\n");
- free(rp);
*rc = TR_CFG_NOPARSE;
return NULL;
}
for (i = 0; i < json_array_size(jgns); i++) {
if (NULL == (rp->gss_names[i] = tr_new_name ((char *)json_string_value(json_array_get(jgns, i))))) {
fprintf(stderr, "tr_cfg_parse_one_rp_client: No memory for GSS Name.\n");
- free(rp);
*rc = TR_CFG_NOMEM;
return NULL;
}
&rc))) {
return rc;
}
- fprintf(stderr, "tr_cfg_parse_rp_clients: RP client configured -- first gss: %s", rp->gss_names[0]->buf);
+ fprintf(stderr, "tr_cfg_parse_rp_clients: RP client configured -- first gss: %s\n", rp->gss_names[0]->buf);
rp->next = trc->rp_clients;
trc->rp_clients = rp;
}
(NULL == (jsrvrs = json_object_get(jidp, "aaa_servers"))) ||
(!json_is_array(jsrvrs))) {
fprintf(stderr, "tr_cfg_parse_one_idp_realm: Error parsing IDP realm configuration.\n");
- free(idp);
*rc = TR_CFG_NOPARSE;
return NULL;
}
}
if (NULL == (idp->realm_id = tr_new_name((char *)json_string_value(jrid)))) {
- free(idp);
fprintf(stderr, "tr_cfg_parse_one_idp_realm: No memory for realm id.\n");
*rc = TR_CFG_NOMEM;
return NULL;
if (NULL == (idp->aaa_servers = tr_cfg_parse_aaa_servers(trc, jsrvrs, rc))) {
fprintf(stderr, "tr_cfg_parse_one_idp_realm: Can't parse AAA servers for realm %s.\n", idp->realm_id->buf);
tr_free_name(idp->realm_id);
- free(idp);
return NULL;
}
fprintf(stderr, "tr_cfg_parse_one_idp_realm: Can't parse APCs for realm %s .\n", idp->realm_id->buf);
tr_free_name(idp->realm_id);
/* TBD -- free aaa_servers */;
- free(idp);
return NULL;
}
}
&rc))) {
return rc;
}
- fprintf(stderr, "tr_cfg_parse_default_servers: Default server configured.\n");
+ fprintf(stderr, "tr_cfg_parse_default_servers: Default server configured: %s.\n", ds->hostname->buf);
ds->next = trc->default_servers;
trc->default_servers = ds;
}
(NULL == (jrps = json_object_get(jcomm, "rp_realms"))) ||
(!json_is_array(jrps))) {
fprintf(stderr, "tr_cfg_parse_one_comm: Error parsing Communities configuration.\n");
- free(comm);
*rc = TR_CFG_NOPARSE;
return NULL;
}
if (NULL == (comm->id = tr_new_name((char *)json_string_value(jid)))) {
- free(comm);
fprintf(stderr, "tr_cfg_parse_one_comm: No memory for community id.\n");
*rc = TR_CFG_NOMEM;
return NULL;
if (NULL == (comm->apcs = tr_cfg_parse_apcs(trc, japcs, rc))) {
fprintf(stderr, "tr_cfg_parse_one_comm: Can't parse APCs for COI %s.\n", comm->id->buf);
tr_free_name(comm->id);
- free(comm);
return NULL;
}
} else {
fprintf(stderr, "tr_cfg_parse_one_comm: Invalid community type, comm = %s, type = %s\n", comm->id->buf, json_string_value(jtype));
tr_free_name(comm->id);
- free(comm);
*rc = TR_CFG_NOPARSE;
return NULL;
}
if (TR_CFG_SUCCESS != *rc) {
fprintf(stderr, "tr_cfg_parse_one_comm: Can't parse IDP realms for comm %s.\n", comm->id->buf);
tr_free_name(comm->id);
- free(comm);
return NULL;
}
fprintf(stderr, "tr_cfg_parse_comm: Can't parse RP realms for comm %s .\n", comm->id->buf);
tr_free_name(comm->id);
/* TBD -- free idps? */;
- free(comm);
return NULL;
}
return rc;
}
-TR_CFG_RC tr_parse_config (TR_INSTANCE *tr, struct dirent **cfg_files) {
+TR_CFG_RC tr_parse_config (TR_INSTANCE *tr, int n, struct dirent **cfg_files) {
json_t *jcfg;
json_error_t rc;
- int n;
if ((!tr) || (!cfg_files))
return TR_CFG_BAD_PARAMS;
return NULL;
}
-#if 0
-json_t *tr_read_config (int n, struct dirent **cfg_files) {
- json_t *jcfg = NULL;
- json_t *temp = NULL;
- json_error_t err;
-
- if (!cfg_files)
- return NULL;
-
- while (n--) {
- fprintf(stderr, "tr_read_config: Parsing %s.\n", cfg_files[n]->d_name);
- if (NULL == (temp = json_load_file(cfg_files[n]->d_name, JSON_DISABLE_EOF_CHECK, &err))) {
- fprintf (stderr, "tr_read_config: Error parsing config file %s.\n", cfg_files[n]->d_name);
- return NULL;
- }
-
- if (!jcfg) {
- jcfg = temp;
- }else {
- if (-1 == json_object_update(jcfg, temp)) {
- fprintf(stderr, "tr_read_config: Error merging config information.\n");
- return NULL;
- }
- }
- }
-
- fprintf(stderr, "tr_read_config: Merged configuration complete:\n%s\n", json_dumps(jcfg, 0));
-
- return jcfg;
-}
-#endif
-
static int is_cfg_file(const struct dirent *dent) {
int n;