- if ((TR_CFG_SUCCESS != tr_cfg_parse_internal(tr, jcfg)) ||
- (TR_CFG_SUCCESS != tr_cfg_parse_rp_clients(tr, jcfg)) ||
- (TR_CFG_SUCCESS != tr_cfg_parse_idp_realms(tr, jcfg)) ||
- (TR_CFG_SUCCESS != tr_cfg_parse_comms(tr, jcfg))) {
- tr_cfg_free(tr->new_cfg);
+ /* Parse configuration information from each config file */
+ while (n--) {
+ fprintf(stderr, "tr_read_config: Parsing %s.\n", cfg_files[n]->d_name);
+ if (NULL == (jcfg = json_load_file(cfg_files[n]->d_name,
+ JSON_DISABLE_EOF_CHECK, &rc))) {
+ fprintf (stderr, "tr_read_config: Error parsing config file %s.\n",
+ cfg_files[n]->d_name);
+ return TR_CFG_NOPARSE;
+ }
+
+ if ((TR_CFG_SUCCESS != tr_cfg_parse_internal(tr->new_cfg, jcfg)) ||
+ (TR_CFG_SUCCESS != tr_cfg_parse_rp_clients(tr->new_cfg, jcfg)) ||
+ (TR_CFG_SUCCESS != tr_cfg_parse_idp_realms(tr->new_cfg, jcfg)) ||
+ (TR_CFG_SUCCESS != tr_cfg_parse_default_servers(tr->new_cfg, jcfg)) ||
+ (TR_CFG_SUCCESS != tr_cfg_parse_comms(tr->new_cfg, jcfg))) {
+ tr_cfg_free(tr->new_cfg);
+ return TR_CFG_ERROR;
+ }
+ }
+
+ /* make sure we got a complete, consistent configuration */
+ if (TR_CFG_SUCCESS != tr_cfg_validate(tr->new_cfg)) {
+ fprintf(stderr, "tr_parse_config: Error: INVALID CONFIGURATION, EXITING\n");