Add default aaa server to config printout, remove redundant log mesage.
[trust_router.git] / common / tr_config.c
index ff92fd0..66eda35 100644 (file)
@@ -367,7 +367,6 @@ static TR_RP_CLIENT *tr_cfg_parse_one_rp_client (TR_CFG *trc, json_t *jrp, TR_CF
   /* 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;
   }
@@ -375,7 +374,6 @@ static TR_RP_CLIENT *tr_cfg_parse_one_rp_client (TR_CFG *trc, json_t *jrp, TR_CF
   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;
     }
@@ -405,7 +403,7 @@ static TR_CFG_RC tr_cfg_parse_rp_clients (TR_CFG *trc, json_t *jcfg) {
                                                   &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;
     }
@@ -517,7 +515,6 @@ static TR_IDP_REALM *tr_cfg_parse_one_idp_realm (TR_CFG *trc, json_t *jidp, TR_C
       (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;
   }
@@ -529,7 +526,6 @@ static TR_IDP_REALM *tr_cfg_parse_one_idp_realm (TR_CFG *trc, json_t *jidp, TR_C
   }
 
   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;
@@ -538,7 +534,6 @@ static TR_IDP_REALM *tr_cfg_parse_one_idp_realm (TR_CFG *trc, json_t *jidp, TR_C
   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;
   }
 
@@ -548,7 +543,6 @@ static TR_IDP_REALM *tr_cfg_parse_one_idp_realm (TR_CFG *trc, json_t *jidp, TR_C
       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;
     }
   } 
@@ -576,7 +570,7 @@ static TR_CFG_RC tr_cfg_parse_default_servers (TR_CFG *trc, json_t *jcfg)
                                                  &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;
     }
@@ -714,13 +708,11 @@ static TR_COMM *tr_cfg_parse_one_comm (TR_CFG *trc, json_t *jcomm, TR_CFG_RC *rc
       (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;
@@ -733,13 +725,11 @@ static TR_COMM *tr_cfg_parse_one_comm (TR_CFG *trc, json_t *jcomm, TR_CFG_RC *rc
     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;
   }
@@ -748,7 +738,6 @@ static TR_COMM *tr_cfg_parse_one_comm (TR_CFG *trc, json_t *jcomm, TR_CFG_RC *rc
   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;
   }
 
@@ -757,7 +746,6 @@ static TR_COMM *tr_cfg_parse_one_comm (TR_CFG *trc, json_t *jcomm, TR_CFG_RC *rc
     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;
   }
 
@@ -825,10 +813,9 @@ TR_CFG_RC tr_cfg_validate (TR_CFG *trc) {
   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;
@@ -915,38 +902,6 @@ TR_RP_CLIENT *tr_cfg_find_rp (TR_CFG *tr_cfg, TR_NAME *rp_gss, TR_CFG_RC *rc)
   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;