Mercurial > hg > waaad
changeset 431:1f16b74eabe2
Allow few remaining AVPs in Diameter answers
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Wed, 24 Jun 2009 17:27:38 +0900 |
parents | e92b5cdd7843 |
children | cfb47f71e98c |
files | extensions/radius_gw/rg_common.h extensions/radius_gw/rgw_work.c |
diffstat | 2 files changed, 20 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/extensions/radius_gw/rg_common.h Wed Jun 24 17:10:16 2009 +0900 +++ b/extensions/radius_gw/rg_common.h Wed Jun 24 17:27:38 2009 +0900 @@ -196,6 +196,8 @@ DIAM_ATTR_ORIGIN_STATE_ID = 278, DIAM_ATTR_FAILED_AVP = 279, DIAM_ATTR_ERROR_MESSAGE = 281, + DIAM_ATTR_ROUTE_RECORD = 282, + DIAM_ATTR_PROXY_INFO = 284, DIAM_ATTR_ERROR_REPORTING_HOST = 294, DIAM_ATTR_NAS_FILTER_RULE = 400, DIAM_ATTR_TUNNELING = 401,
--- a/extensions/radius_gw/rgw_work.c Wed Jun 24 17:10:16 2009 +0900 +++ b/extensions/radius_gw/rgw_work.c Wed Jun 24 17:27:38 2009 +0900 @@ -84,8 +84,24 @@ while (avp) { CHECK_FCT_DO( msg_avp_data ( avp, &adata ), { pb++; continue; } ); if (adata->avp_flags & AVP_FLAG_MANDATORY) { - TRACE_DEBUG(FULL, "Remaining Mandatory AVP code %d", adata->avp_code); - pb++; + if (adata->avp_flags & AVP_FLAG_VENDOR) { + TRACE_DEBUG(FULL, "Remaining Mandatory Vendor AVP, code %d", adata->avp_code); + pb++; + } else { + switch (adata->avp_code) { + /* A few AVPs can be safely ignored here: */ + case DIAM_ATTR_ROUTE_RECORD: + case DIAM_ATTR_PROXY_INFO: + + + /* just ignore */ + break; + + default: + TRACE_DEBUG(FULL, "Remaining Mandatory AVP, code %d", adata->avp_code); + pb++; + } + } } CHECK_FCT_DO( msg_browse(avp, MSG_BRW_NEXT, &avp, NULL), { pb++; break; } ); }