aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/payloads/eap_payload.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-08-23 08:36:24 +0200
committerTobias Brunner <tobias@strongswan.org>2012-08-31 11:40:27 +0200
commitcc4eec56f73ef54386badc8732b1867cbe05b47f (patch)
treed23b3134094aecb96deeedec32b30bd28b0d19e1 /src/libcharon/encoding/payloads/eap_payload.c
parent78e8dca94f86b97b7df649c1c96a7fe532019a5f (diff)
downloadstrongswan-cc4eec56f73ef54386badc8732b1867cbe05b47f.tar.bz2
strongswan-cc4eec56f73ef54386badc8732b1867cbe05b47f.tar.xz
Encode EAP-Naks in expanded format if we got an expanded type request
Since methods defined by the IETF (vendor ID 0) could also be encoded in expanded type format the previous check was insufficient.
Diffstat (limited to 'src/libcharon/encoding/payloads/eap_payload.c')
-rw-r--r--src/libcharon/encoding/payloads/eap_payload.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libcharon/encoding/payloads/eap_payload.c b/src/libcharon/encoding/payloads/eap_payload.c
index 15a9972f2..855504fe0 100644
--- a/src/libcharon/encoding/payloads/eap_payload.c
+++ b/src/libcharon/encoding/payloads/eap_payload.c
@@ -241,6 +241,12 @@ METHOD(eap_payload_t, get_type, eap_type_t,
return 0;
}
+METHOD(eap_payload_t, is_expanded, bool,
+ private_eap_payload_t *this)
+{
+ return this->data.len > 4 ? this->data.ptr[4] == EAP_EXPANDED : FALSE;
+}
+
METHOD2(payload_t, eap_payload_t, destroy, void,
private_eap_payload_t *this)
{
@@ -272,6 +278,7 @@ eap_payload_t *eap_payload_create()
.get_code = _get_code,
.get_identifier = _get_identifier,
.get_type = _get_type,
+ .is_expanded = _is_expanded,
.destroy = _destroy,
},
.next_payload = NO_PAYLOAD,