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) {
"Welcome to our mercurial repository"