*
* FIXME do something with mandatory
*/
-ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dict_attr_t const *parent,
+ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent,
uint8_t const *data, size_t data_len,
void *decoder_ctx)
{
MEM(vp = fr_pair_afrom_child_num(ctx, parent, attr));
} else if (da->type == FR_TYPE_TLV) {
- p += (size_t) eap_fast_decode_pair(ctx, cursor, parent, p, len, decoder_ctx);
+ p += (size_t) eap_fast_decode_pair(ctx, out, parent, p, len, decoder_ctx);
continue;
} else {
fr_pair_to_unknown(vp);
fr_pair_value_memdup(vp, p, len, true);
}
- fr_cursor_append(cursor, vp);
+ fr_pair_add(out, vp);
p += len;
}
{
FR_CODE code;
fr_pair_list_t fast_vps;
- fr_cursor_t cursor;
uint8_t const *data;
size_t data_len;
eap_fast_tunnel_t *t;
return FR_CODE_ACCESS_CHALLENGE;
}
- fr_cursor_init(&cursor, &fast_vps);
- if (eap_fast_decode_pair(request, &cursor, attr_eap_fast_tlv,
+ if (eap_fast_decode_pair(request, &fast_vps, attr_eap_fast_tlv,
data, data_len, NULL) < 0) return FR_CODE_ACCESS_REJECT;
RDEBUG2("Got Tunneled FAST TLVs");
/*
* A bunch of EAP-FAST helper functions.
*/
-ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dict_attr_t const *parent,
+ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent,
uint8_t const *data, size_t data_len,
UNUSED void *decoder_ctx);
RHEXDUMP3((uint8_t const *)&opaque_plaintext, plen, "PAC-Opaque plaintext data section");
fr_cursor_init(&cursor, &fast_vps);
- if (eap_fast_decode_pair(tls_session, &cursor, attr_eap_fast_pac_opaque_tlv, (uint8_t *)&opaque_plaintext, plen, NULL) < 0) {
+ if (eap_fast_decode_pair(tls_session, &fast_vps, attr_eap_fast_pac_opaque_tlv, (uint8_t *)&opaque_plaintext, plen, NULL) < 0) {
errmsg = fr_strerror();
goto error;
}