From: Jennifer Richards Date: Tue, 13 Dec 2016 21:43:01 +0000 (-0500) Subject: Return error when TID requests fail. (bug #1648118) X-Git-Tag: v2.1.1~12 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=commitdiff_plain;h=7be7f5a7975daefe770b5732cc8b75313d3114cf Return error when TID requests fail. (bug #1648118) --- diff --git a/tr/tr_tid.c b/tr/tr_tid.c index 1fe428d..9c96d97 100644 --- a/tr/tr_tid.c +++ b/tr/tr_tid.c @@ -229,6 +229,7 @@ static int tr_tids_req_handler(TIDS_INSTANCE *tids, TR_AAA_SERVER_ITER *aaa_iter=NULL; pthread_t aaa_thread[TR_TID_MAX_AAA_SERVERS]; struct tr_tids_fwd_cookie *aaa_cookie[TR_TID_MAX_AAA_SERVERS]={NULL}; + TID_RESP *aaa_resp[TR_TID_MAX_AAA_SERVERS]={NULL}; TR_NAME *apc = NULL; TID_REQ *fwd_req = NULL; TR_COMM *cfg_comm = NULL; @@ -468,6 +469,8 @@ static int tr_tids_req_handler(TIDS_INSTANCE *tids, /* process message */ if (0==strcmp(tr_mq_msg_get_message(msg), TR_TID_MQMSG_SUCCESS)) { payload=talloc_get_type_abort(tr_mq_msg_get_payload(msg), TR_RESP_COOKIE); + aaa_resp[payload->thread_id]=payload->resp; /* save pointers to these */ + if (payload->resp->result==TID_SUCCESS) { tr_tids_merge_resps(resp, payload->resp); n_responses++; @@ -536,9 +539,13 @@ static int tr_tids_req_handler(TIDS_INSTANCE *tids, } if (n_responses==0) { - tid_resp_set_result(resp, TID_ERROR); - tid_resp_set_err_msg(resp, tr_new_name("No successful response from AAA server(s).")); - tid_resp_set_error_path(resp, orig_req->path); + /* No requests succeeded. Forward an error if we got any error responses. */ + for (ii=0; ii