aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2010-02-14 14:08:15 (GMT)
committerJouni Malinen <j@w1.fi>2010-02-14 14:08:15 (GMT)
commit25ac1328f61f28ff209a7ff3718612b17bdeb8f7 (patch)
tree314b6c823a440bfce01cfa2d7d17d1d8d6c8f0b2
parent4a3ade4e11e4211e0e4e8b232304a335a1c23931 (diff)
downloadhostap-25ac1328f61f28ff209a7ff3718612b17bdeb8f7.zip
hostap-25ac1328f61f28ff209a7ff3718612b17bdeb8f7.tar.gz
hostap-25ac1328f61f28ff209a7ff3718612b17bdeb8f7.tar.bz2
EAP-TNC: Add Flags field into fragment acknowledgement
TNC IF-T is somewhat unclear on this are, but draft-hanna-nea-pt-eap-00.txt, which is supposed to define the same protocol, is clearer on the Flags field being included. This change breaks interoperability with the old implementation if EAP-TNC fragmentation is used. The old version would not accept the acknowledgement message with the added Flags octet while the new version accepts messagss with with both options.
-rw-r--r--src/eap_peer/eap_tnc.c3
-rw-r--r--src/eap_server/eap_tnc.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/eap_peer/eap_tnc.c b/src/eap_peer/eap_tnc.c
index 177d432..6c95f72 100644
--- a/src/eap_peer/eap_tnc.c
+++ b/src/eap_peer/eap_tnc.c
@@ -73,12 +73,13 @@ static struct wpabuf * eap_tnc_build_frag_ack(u8 id, u8 code)
{
struct wpabuf *msg;
- msg = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, 0, code, id);
+ msg = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, 1, code, id);
if (msg == NULL) {
wpa_printf(MSG_ERROR, "EAP-TNC: Failed to allocate memory "
"for fragment ack");
return NULL;
}
+ wpabuf_put_u8(msg, EAP_TNC_VERSION); /* Flags */
wpa_printf(MSG_DEBUG, "EAP-TNC: Send fragment ack");
diff --git a/src/eap_server/eap_tnc.c b/src/eap_server/eap_tnc.c
index 4eddf8b..b4fd495 100644
--- a/src/eap_server/eap_tnc.c
+++ b/src/eap_server/eap_tnc.c
@@ -173,12 +173,13 @@ static struct wpabuf * eap_tnc_build_frag_ack(u8 id, u8 code)
{
struct wpabuf *msg;
- msg = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, 0, code, id);
+ msg = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, 1, code, id);
if (msg == NULL) {
wpa_printf(MSG_ERROR, "EAP-TNC: Failed to allocate memory "
"for fragment ack");
return NULL;
}
+ wpabuf_put_u8(msg, EAP_TNC_VERSION); /* Flags */
wpa_printf(MSG_DEBUG, "EAP-TNC: Send fragment ack");