diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2012-03-09 10:20:44 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2012-03-13 16:27:17 +0100 |
commit | 595f44e9a3e48d84931287aca533ba7e2d2b604b (patch) | |
tree | 7f04ef05ac9b90e768548fabeb747301d9707bef /src | |
parent | d1a311f631f98821f259522f430fa2942fc629a9 (diff) | |
download | strongswan-595f44e9a3e48d84931287aca533ba7e2d2b604b.tar.bz2 strongswan-595f44e9a3e48d84931287aca533ba7e2d2b604b.tar.xz |
apply maximum RADIUS attribute size to outbound EAP messages
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/tnc_pdp/tnc_pdp.c | 9 |
1 files changed, 9 insertions, 0 deletions
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)); |