From 595f44e9a3e48d84931287aca533ba7e2d2b604b Mon Sep 17 00:00:00 2001 From: Andreas Steffen Date: Fri, 9 Mar 2012 10:20:44 +0100 Subject: [PATCH] apply maximum RADIUS attribute size to outbound EAP messages --- src/libcharon/plugins/tnc_pdp/tnc_pdp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/libcharon/plugins/tnc_pdp/tnc_pdp.c b/src/libcharon/plugins/tnc_pdp/tnc_pdp.c index 6daae8fc7..1ef87f24f 100644 --- a/src/libcharon/plugins/tnc_pdp/tnc_pdp.c +++ b/src/libcharon/plugins/tnc_pdp/tnc_pdp.c @@ -189,6 +189,15 @@ static void send_response(private_tnc_pdp_t *this, if (eap) { data = eap->get_data(eap); + DBG3(DBG_CFG, "%N payload %B", eap_type_names, this->type, &data); + + /* fragment data suitable for RADIUS */ + while (data.len > MAX_RADIUS_ATTRIBUTE_SIZE) + { + response->add(response, RAT_EAP_MESSAGE, + chunk_create(data.ptr,MAX_RADIUS_ATTRIBUTE_SIZE)); + data = chunk_skip(data, MAX_RADIUS_ATTRIBUTE_SIZE); + } response->add(response, RAT_EAP_MESSAGE, data); } response->set_identifier(response, request->get_identifier(request));