From: Arran Cudbard-Bell Date: Tue, 3 Nov 2020 22:30:35 +0000 (-0600) Subject: More pair list fixups X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0450be6874ebde89fcd51751da2f56d075e18196;p=thirdparty%2Ffreeradius-server.git More pair list fixups --- diff --git a/src/lib/eap/chbind.c b/src/lib/eap/chbind.c index ed933f48081..02b0dfad32f 100644 --- a/src/lib/eap/chbind.c +++ b/src/lib/eap/chbind.c @@ -182,13 +182,13 @@ FR_CODE chbind_process(request_t *request, CHBIND_REQ *chbind) /* Set-up the fake request */ fake = request_alloc_fake(request, NULL); - MEM(fr_pair_add_by_da(fake->packet, &vp, &fake->packet->vps, attr_freeradius_proxied_to) >= 0); + MEM(fr_pair_add_by_da(fake->packet, &vp, &fake->request_pairs, attr_freeradius_proxied_to) >= 0); fr_pair_value_from_str(vp, "127.0.0.1", sizeof("127.0.0.1"), '\0', false); /* Add the username to the fake request */ if (chbind->username) { vp = fr_pair_copy(fake->packet, chbind->username); - fr_pair_add(&fake->packet->vps, vp); + fr_pair_add(&fake->request_pairs, vp); } /* @@ -202,7 +202,7 @@ FR_CODE chbind_process(request_t *request, CHBIND_REQ *chbind) fr_assert(data_len <= talloc_array_length((uint8_t const *) chbind->request)); - fr_cursor_init(&cursor, &fake->packet->vps); + fr_cursor_init(&cursor, &fake->request_pairs); while (data_len > 0) { ssize_t attr_len; diff --git a/src/lib/unlang/parallel.c b/src/lib/unlang/parallel.c index 60789ea613b..3afc19835fe 100644 --- a/src/lib/unlang/parallel.c +++ b/src/lib/unlang/parallel.c @@ -112,10 +112,10 @@ static unlang_action_t unlang_parallel_process(rlm_rcode_t *p_result, request_t * the parent. */ if ((fr_pair_list_copy(child->packet, - &child->packet->vps, + &child->request_pairs, request->request_pairs) < 0) || (fr_pair_list_copy(child->reply, - &child->reply->vps, + &child->reply_pairs, request->reply_pairs) < 0) || (fr_pair_list_copy(child, &child->control, diff --git a/src/lib/unlang/subrequest.c b/src/lib/unlang/subrequest.c index 75bc2fccaae..8c5a010b4a0 100644 --- a/src/lib/unlang/subrequest.c +++ b/src/lib/unlang/subrequest.c @@ -148,7 +148,7 @@ static unlang_action_t unlang_subrequest_process(rlm_rcode_t *p_result, request_ goto done; } while ((extent = fr_dlist_head(&leaf))) { - fr_pair_list_copy(extent->list_ctx, extent->list, child->reply->vps); + fr_pair_list_copy(extent->list_ctx, extent->list, child->reply_pairs); fr_dlist_talloc_free_head(&leaf); } } @@ -209,7 +209,7 @@ static unlang_action_t unlang_subrequest_start(rlm_rcode_t *p_result, request_t state->session.unique_int); RDEBUG2("Creating subrequest (%s)", child->name); - log_request_pair_list(L_DBG_LVL_1, request, child->packet->vps, NULL); + log_request_pair_list(L_DBG_LVL_1, request, child->request_pairs, NULL); frame->process = unlang_subrequest_process; return unlang_subrequest_process(p_result, request); @@ -306,16 +306,16 @@ static unlang_action_t unlang_subrequest_state_init(rlm_rcode_t *p_result, reque } } - fr_pair_add(&child->packet->vps, vp); + fr_pair_add(&child->request_pairs, vp); if (gext->src) { if (tmpl_is_list(gext->src)) { - if (tmpl_copy_pairs(child->packet, &child->packet->vps, request, gext->src) < -1) { + if (tmpl_copy_pairs(child->packet, &child->request_pairs, request, gext->src) < -1) { RPEDEBUG("Failed copying source attributes into subrequest"); goto fail; } } else { - if (tmpl_copy_pair_children(child->packet, &child->packet->vps, request, gext->src) < -1) { + if (tmpl_copy_pair_children(child->packet, &child->request_pairs, request, gext->src) < -1) { RPEDEBUG("Failed copying source attributes into subrequest"); goto fail; } diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c b/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c index ff0abcc0ec7..b6447aeb6e3 100644 --- a/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c +++ b/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c @@ -580,7 +580,7 @@ static FR_CODE eap_fast_eap_payload(request_t *request, eap_session_t *eap_sessi * Allocate a fake request_t structure. */ fake = request_alloc_fake(request, NULL); - fr_assert(!fake->packet->vps); + fr_assert(!fake->request_pairs); t = talloc_get_type_abort(tls_session->opaque, eap_fast_tunnel_t); @@ -588,16 +588,16 @@ static FR_CODE eap_fast_eap_payload(request_t *request, eap_session_t *eap_sessi * Add the tunneled attributes to the fake request. */ - MEM(fake->packet->vps = vp = fr_pair_afrom_da(fake->packet, attr_eap_message)); - fr_pair_value_memdup(fake->packet->vps, tlv_eap_payload->vp_octets, tlv_eap_payload->vp_length, false); + MEM(fake->request_pairs = vp = fr_pair_afrom_da(fake->packet, attr_eap_message)); + fr_pair_value_memdup(fake->request_pairs, tlv_eap_payload->vp_octets, tlv_eap_payload->vp_length, false); RDEBUG2("Got tunneled request"); - log_request_pair_list(L_DBG_LVL_1, fake, fake->packet->vps, NULL); + log_request_pair_list(L_DBG_LVL_1, fake, fake->request_pairs, NULL); /* * Tell the request that it's a fake one. */ - MEM(fr_pair_add_by_da(fake->packet, &vp, &fake->packet->vps, attr_freeradius_proxied_to) >= 0); + MEM(fr_pair_add_by_da(fake->packet, &vp, &fake->request_pairs, attr_freeradius_proxied_to) >= 0); fr_pair_value_from_str(vp, "127.0.0.1", sizeof("127.0.0.1"), '\0', false); /* @@ -631,7 +631,7 @@ static FR_CODE eap_fast_eap_payload(request_t *request, eap_session_t *eap_sessi if (t->username) { vp = fr_pair_copy(fake->packet, t->username); - fr_pair_add(&fake->packet->vps, vp); + fr_pair_add(&fake->request_pairs, vp); } if (t->stage == EAP_FAST_AUTHENTICATION) { /* FIXME do this only for MSCHAPv2 */ diff --git a/src/modules/rlm_eap/types/rlm_eap_peap/peap.c b/src/modules/rlm_eap/types/rlm_eap_peap/peap.c index 1353fb8a902..16fe4b454fe 100644 --- a/src/modules/rlm_eap/types/rlm_eap_peap/peap.c +++ b/src/modules/rlm_eap/types/rlm_eap_peap/peap.c @@ -164,7 +164,7 @@ static void eap_peap_soh_verify(request_t *request, fr_radius_packet_t *packet, MEM(vp = fr_pair_afrom_da(packet, attr_soh_supported)); vp->vp_bool = false; - fr_pair_add(&packet->vps, vp); + fr_pair_add(&request->request_pairs, vp); if (data && data[0] == FR_EAP_METHOD_NAK) { REDEBUG("SoH - client NAKed"); @@ -551,7 +551,7 @@ rlm_rcode_t eap_peap_process(request_t *request, eap_session_t *eap_session, fr_ case PEAP_STATUS_WAIT_FOR_SOH_RESPONSE: fake = request_alloc_fake(request, NULL); - fr_assert(!fake->packet->vps); + fr_assert(!fake->request_pairs); eap_peap_soh_verify(fake, fake->packet, data, data_len); setup_fake_request(request, fake, t); @@ -652,7 +652,7 @@ rlm_rcode_t eap_peap_process(request_t *request, eap_session_t *eap_session, fr_ } fake = request_alloc_fake(request, NULL); - fr_assert(!fake->packet->vps); + fr_assert(!fake->request_pairs); switch (t->status) { /* @@ -679,14 +679,14 @@ rlm_rcode_t eap_peap_process(request_t *request, eap_session_t *eap_session, fr_ q[4] = FR_EAP_METHOD_IDENTITY; memcpy(q + EAP_HEADER_LEN + 1, t->username->vp_strvalue, t->username->vp_length); - fr_pair_add(&fake->packet->vps, vp); + fr_pair_add(&fake->request_pairs, vp); } break; case PEAP_STATUS_PHASE2: - fake->packet->vps = eap_peap_inner_to_pairs(request, fake->packet, + fake->request_pairs = eap_peap_inner_to_pairs(request, fake->packet, eap_round, data, data_len); - if (!fake->packet->vps) { + if (!fake->request_pairs) { talloc_free(fake); RDEBUG2("Unable to convert tunneled EAP packet to internal server data structures"); rcode = RLM_MODULE_REJECT; @@ -701,7 +701,7 @@ rlm_rcode_t eap_peap_process(request_t *request, eap_session_t *eap_session, fr_ } RDEBUG2("Got tunneled request"); - log_request_pair_list(L_DBG_LVL_2, request, fake->packet->vps, NULL); + log_request_pair_list(L_DBG_LVL_2, request, fake->request_pairs, NULL); /* * Update other items in the request_t data structure. @@ -754,12 +754,12 @@ static int CC_HINT(nonnull) setup_fake_request(request_t *request, request_t *fa /* * Tell the request that it's a fake one. */ - MEM(fr_pair_add_by_da(fake->packet, &vp, &fake->packet->vps, attr_freeradius_proxied_to) >= 0); + MEM(fr_pair_add_by_da(fake->packet, &vp, &fake->request_pairs, attr_freeradius_proxied_to) >= 0); fr_pair_value_from_str(vp, "127.0.0.1", sizeof("127.0.0.1"), '\0', false); if (t->username) { vp = fr_pair_copy(fake->packet, t->username); - fr_pair_add(&fake->packet->vps, vp); + fr_pair_add(&fake->request_pairs, vp); RDEBUG2("Setting &request.User-Name from tunneled (inner) identity \"%s\"", vp->vp_strvalue); } else {