X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=common%2Ftr_config.c;h=7972cf8ad6138a30062e3ea7b9c0a5bbe4c938fd;hb=903af103d029aab23f359cc662b7b3810ccc1ca1;hp=713ddb892e04234dde91ed5c276d41f03271744e;hpb=534951946dc529b8f8d422c5f918413fed7c423a;p=trust_router.git diff --git a/common/tr_config.c b/common/tr_config.c index 713ddb8..7972cf8 100644 --- a/common/tr_config.c +++ b/common/tr_config.c @@ -328,9 +328,7 @@ static TR_IDP_REALM *tr_cfg_parse_one_idp_realm (TR_INSTANCE *tr, json_t *jidp, (NULL == (jscfg = json_object_get(jidp, "shared_config"))) || (!json_is_string(jscfg)) || (NULL == (jsrvrs = json_object_get(jidp, "aaa_servers"))) || - (!json_is_array(jsrvrs)) || - (NULL == (japcs = json_object_get(jidp, "apcs"))) || - (!json_is_array(japcs))) { + (!json_is_array(jsrvrs))) { fprintf(stderr, "tr_cfg_parse_one_idp_realm: Error parsing IDP realm configuration.\n"); free(idp); *rc = TR_CFG_NOPARSE; @@ -356,15 +354,18 @@ static TR_IDP_REALM *tr_cfg_parse_one_idp_realm (TR_INSTANCE *tr, json_t *jidp, free(idp); return NULL; } - if (NULL == (idp->apcs = tr_cfg_parse_apcs(tr, japcs, rc))) { - 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; - } -return idp; + if ((NULL != (japcs = json_object_get(jidp, "apcs"))) && + (json_is_array(japcs))) { + if (NULL != (idp->apcs = tr_cfg_parse_apcs(tr, japcs, rc))) { + 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; + } + } + return idp; } static TR_CFG_RC tr_cfg_parse_idp_realms (TR_INSTANCE *tr, json_t *jcfg)