struct eap_tnc_data *data = priv;
struct wpabuf *resp;
const u8 *pos, *end;
- u8 *rpos, *rpos1, *start;
+ u8 *rpos, *rpos1;
size_t len, rlen;
size_t imc_len;
char *start_buf, *end_buf;
}
end_len = os_strlen(end_buf);
- rlen = 1 + start_len + imc_len + end_len;
- resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, rlen,
- EAP_CODE_RESPONSE, eap_get_id(reqData));
+ rlen = start_len + imc_len + end_len;
+ resp = wpabuf_alloc(rlen);
if (resp == NULL) {
os_free(start_buf);
os_free(end_buf);
return NULL;
}
- start = wpabuf_put(resp, 0);
- wpabuf_put_u8(resp, EAP_TNC_VERSION);
wpabuf_put_data(resp, start_buf, start_len);
os_free(start_buf);
wpabuf_put_data(resp, end_buf, end_len);
os_free(end_buf);
- wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Response", start, rlen);
+ wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Response",
+ wpabuf_head(resp), wpabuf_len(resp));
data->out_buf = resp;
data->state = MSG;
static struct wpabuf * eap_tnc_build(struct eap_sm *sm,
- struct eap_tnc_data *data, u8 id)
+ struct eap_tnc_data *data)
{
struct wpabuf *req;
- u8 *rpos, *rpos1, *start;
+ u8 *rpos, *rpos1;
size_t rlen;
char *start_buf, *end_buf;
size_t start_len, end_len;
}
end_len = os_strlen(end_buf);
- rlen = 1 + start_len + imv_len + end_len;
- req = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_TNC, rlen,
- EAP_CODE_REQUEST, id);
+ rlen = start_len + imv_len + end_len;
+ req = wpabuf_alloc(rlen);
if (req == NULL) {
os_free(start_buf);
os_free(end_buf);
return NULL;
}
- start = wpabuf_put(req, 0);
- wpabuf_put_u8(req, EAP_TNC_VERSION);
wpabuf_put_data(req, start_buf, start_len);
os_free(start_buf);
wpabuf_put_data(req, end_buf, end_len);
os_free(end_buf);
- wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Request", start, rlen);
+ wpa_hexdump_ascii(MSG_MSGDUMP, "EAP-TNC: Request",
+ wpabuf_head(req), wpabuf_len(req));
return req;
}
static struct wpabuf * eap_tnc_build_recommendation(struct eap_sm *sm,
- struct eap_tnc_data *data,
- u8 id)
+ struct eap_tnc_data *data)
{
switch (data->recommendation) {
case ALLOW:
return NULL;
}
- return eap_tnc_build(sm, data, id);
+ return eap_tnc_build(sm, data);
}
return eap_tnc_build_start(sm, data, id);
case CONTINUE:
if (data->out_buf == NULL) {
- data->out_buf = eap_tnc_build(sm, data, id);
+ data->out_buf = eap_tnc_build(sm, data);
if (data->out_buf == NULL) {
wpa_printf(MSG_DEBUG, "EAP-TNC: Failed to "
"generate message");
return eap_tnc_build_msg(data, id);
case RECOMMENDATION:
if (data->out_buf == NULL) {
- data->out_buf = eap_tnc_build_recommendation(sm, data,
- id);
+ data->out_buf = eap_tnc_build_recommendation(sm, data);
if (data->out_buf == NULL) {
wpa_printf(MSG_DEBUG, "EAP-TNC: Failed to "
"generate recommendation message");