Mercurial > hg > waaad
changeset 424:89e0afe61a52
Removed ASSERT 0
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Wed, 24 Jun 2009 14:51:27 +0900 |
parents | cd4d91188530 |
children | 3b6cab85490f |
files | extensions/radius_gw/rgw_work.c |
diffstat | 1 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/extensions/radius_gw/rgw_work.c Wed Jun 24 14:33:57 2009 +0900 +++ b/extensions/radius_gw/rgw_work.c Wed Jun 24 14:51:27 2009 +0900 @@ -66,6 +66,9 @@ { struct pending_answer * pa = (struct pending_answer *)paback; struct radius_msg * rad_ans; + msg_avp_t *avp; + msg_avp_data_t *adata; + int pb = 0; TRACE_ENTRY("%p %p", pa, ans); CHECK_PARAMS_DO( pa && ans, return ); @@ -77,7 +80,19 @@ CHECK_FCT_DO( rgw_extensions_loop_ans(pa->rad, pa->sess, ans, &rad_ans, pa->cli), goto out ); /* Now check what AVPs remain in the diameter answer. If AVPs with the 'M' flag are here, we have a problem... */ - ASSERT(0); + CHECK_FCT( msg_browse(*ans, MSG_BRW_FIRST_CHILD, &avp, NULL) ); + while (avp) { + CHECK_FCT( msg_avp_data ( avp, &adata ) ); + TRACE_DEBUG(ANNOYING, "Remaining AVP code %d", adata->avp_code); + if (adata->avp_flags & AVP_FLAG_MANDATORY) { + pb++; + } + CHECK_FCT( msg_browse(avp, MSG_BRW_NEXT, &avp, NULL) ); + } + + if (pb) { + TRACE_DEBUG(INFO, "WARNING: %d mandatory AVP in the Diameter answer have not been converted! Please use sub_debug for more information.", pb); + } /* Now try and send the RADIUS answer */ if (rad_ans) {