diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius.c | 9 | ||||
-rw-r--r-- | src/libradius/radius_message.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/libcharon/plugins/eap_radius/eap_radius.c b/src/libcharon/plugins/eap_radius/eap_radius.c index 051d46ecf..556baa264 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius.c +++ b/src/libcharon/plugins/eap_radius/eap_radius.c @@ -327,11 +327,12 @@ METHOD(eap_method_t, process, status_t, data = in->get_data(in); DBG3(DBG_IKE, "%N payload %B", eap_type_names, this->type, &data); - /* fragment data suitable for RADIUS (not more than 253 bytes) */ - while (data.len > 253) + /* fragment data suitable for RADIUS */ + while (data.len > MAX_RADIUS_ATTRIBUTE_SIZE) { - request->add(request, RAT_EAP_MESSAGE, chunk_create(data.ptr, 253)); - data = chunk_skip(data, 253); + request->add(request, RAT_EAP_MESSAGE, + chunk_create(data.ptr,MAX_RADIUS_ATTRIBUTE_SIZE)); + data = chunk_skip(data, MAX_RADIUS_ATTRIBUTE_SIZE); } request->add(request, RAT_EAP_MESSAGE, data); diff --git a/src/libradius/radius_message.h b/src/libradius/radius_message.h index a03af3362..55cb484ff 100644 --- a/src/libradius/radius_message.h +++ b/src/libradius/radius_message.h @@ -28,6 +28,8 @@ #include <library.h> +#define MAX_RADIUS_ATTRIBUTE_SIZE 253 + typedef struct radius_message_t radius_message_t; typedef enum radius_message_code_t radius_message_code_t; typedef enum radius_attribute_type_t radius_attribute_type_t; |