From: Alan T. DeKok Date: Mon, 17 Jul 2023 18:13:16 +0000 (-0400) Subject: change vp->da->type to vp->vp_type X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d07019ebc9481251117ea72df84114f9c04460db;p=thirdparty%2Ffreeradius-server.git change vp->da->type to vp->vp_type not only is it friendlier to cache locality, it's more correct because of things like FR_TYPE_COMBO_IPADDR, where the realized vp->vp_type is different from the theoretical da->type --- diff --git a/src/listen/bfd/proto_bfd.c b/src/listen/bfd/proto_bfd.c index f225d89a939..91fe84db3fe 100644 --- a/src/listen/bfd/proto_bfd.c +++ b/src/listen/bfd/proto_bfd.c @@ -276,7 +276,7 @@ static int mod_decode(UNUSED void const *instance, request_t *request, uint8_t * vp != NULL; vp = fr_pair_list_next(&request->request_pairs, vp)) { if (!flag_encrypted(&vp->da->flags)) { - switch (vp->da->type) { + switch (vp->vp_type) { default: break; diff --git a/src/listen/ldap_sync/proto_ldap_sync_ldap.c b/src/listen/ldap_sync/proto_ldap_sync_ldap.c index 2b34d927479..b37de369850 100644 --- a/src/listen/ldap_sync/proto_ldap_sync_ldap.c +++ b/src/listen/ldap_sync/proto_ldap_sync_ldap.c @@ -481,7 +481,7 @@ int ldap_sync_entry_send(sync_state_t *sync, uint8_t const uuid[SYNC_UUID_LENGTH if (values[i]->bv_len == 0) continue; if (pair_append_by_tmpl_parent(sync_packet_ctx, &vp, pairs, map->lhs, true) < 0) break; - if (fr_value_box_from_str(vp, &vp->data, vp->da->type, NULL, values[i]->bv_val, + if (fr_value_box_from_str(vp, &vp->data, vp->vp_type, NULL, values[i]->bv_val, values[i]->bv_len, NULL, true) < 0) { fr_pair_remove(pairs, vp); talloc_free(vp); diff --git a/src/listen/radius/proto_radius.c b/src/listen/radius/proto_radius.c index 74bf2a5a0de..9d6002cf286 100644 --- a/src/listen/radius/proto_radius.c +++ b/src/listen/radius/proto_radius.c @@ -275,7 +275,7 @@ static int mod_decode(UNUSED void const *instance, request_t *request, uint8_t * vp != NULL; vp = fr_pair_list_next(&request->request_pairs, vp)) { if (!flag_encrypted(&vp->da->flags)) { - switch (vp->da->type) { + switch (vp->vp_type) { default: break; diff --git a/src/listen/tacacs/proto_tacacs.c b/src/listen/tacacs/proto_tacacs.c index 5a393a19fe7..7ae40c50584 100644 --- a/src/listen/tacacs/proto_tacacs.c +++ b/src/listen/tacacs/proto_tacacs.c @@ -289,7 +289,7 @@ static int mod_decode(UNUSED void const *instance, request_t *request, uint8_t * vp != NULL; vp = fr_pair_list_next(&request->request_pairs, vp)) { if (!vp->da->flags.subtype) { - switch (vp->da->type) { + switch (vp->vp_type) { default: break; diff --git a/src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c b/src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c index d06286031d1..ebdfc80f17c 100644 --- a/src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c +++ b/src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c @@ -258,7 +258,7 @@ static ssize_t eap_ttls_decode_pair(request_t *request, TALLOC_CTX *ctx, fr_dcur } } - ret = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + ret = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(p, (size_t)value_len), value_len, true); if (ret < 0) { /* diff --git a/src/modules/rlm_lua/lua.c b/src/modules/rlm_lua/lua.c index 8da536c15ba..378d6ec65bb 100644 --- a/src/modules/rlm_lua/lua.c +++ b/src/modules/rlm_lua/lua.c @@ -218,7 +218,7 @@ static int fr_lua_unmarshall(TALLOC_CTX *ctx, fr_pair_t **out, static_assert(SIZEOF_MEMBER(fr_value_box_t, vb_float64) >= sizeof(double), "fr_value_box_t field smaller than return from lua_tonumber"); - switch (vp->da->type) { + switch (vp->vp_type) { /* * Preserve decimal precision. * @@ -238,7 +238,7 @@ static int fr_lua_unmarshall(TALLOC_CTX *ctx, fr_pair_t **out, } - if (fr_value_box_cast(vp, &vp->data, vp->da->type, vp->da, &vb) < 0) { + if (fr_value_box_cast(vp, &vp->data, vp->vp_type, vp->da, &vb) < 0) { RPEDEBUG("Failed unmarshalling Lua number for \"%s\"", vp->da->name); return -1; } @@ -259,7 +259,7 @@ static int fr_lua_unmarshall(TALLOC_CTX *ctx, fr_pair_t **out, fr_value_box_bstrndup_shallow(&vb, NULL, p, len, true); - if (fr_value_box_cast(vp, &vp->data, vp->da->type, vp->da, &vb) < 0) { + if (fr_value_box_cast(vp, &vp->data, vp->vp_type, vp->da, &vb) < 0) { RPEDEBUG("Failed unmarshalling Lua string for \"%s\"", vp->da->name); return -1; } diff --git a/src/modules/rlm_sql/sql.c b/src/modules/rlm_sql/sql.c index c9029e852dd..7c385833c7f 100644 --- a/src/modules/rlm_sql/sql.c +++ b/src/modules/rlm_sql/sql.c @@ -236,7 +236,7 @@ static int sql_pair_afrom_row(TALLOC_CTX *ctx, request_t *request, fr_pair_list_ MEM(vp = fr_pair_afrom_da(my_ctx, da)); vp->op = op; - if ((vp->da->type == FR_TYPE_TLV) && !*value) { + if ((vp->vp_type == FR_TYPE_TLV) && !*value) { /* * Allow empty values for TLVs: we just create the value. * diff --git a/src/protocols/bfd/decode.c b/src/protocols/bfd/decode.c index 44a26e5330c..fdd6af3b9ec 100644 --- a/src/protocols/bfd/decode.c +++ b/src/protocols/bfd/decode.c @@ -42,7 +42,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, vp = fr_pair_afrom_da(ctx, parent); if (!vp) return PAIR_DECODE_OOM; - slen = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(data, data_len), data_len, true); if (slen < 0) { talloc_free(vp); diff --git a/src/protocols/bfd/encode.c b/src/protocols/bfd/encode.c index 0cf3cbfd81d..80e272dc754 100644 --- a/src/protocols/bfd/encode.c +++ b/src/protocols/bfd/encode.c @@ -57,7 +57,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, /* * This has special requirements. */ - if ((vp->da->type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { + if ((vp->vp_type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { slen = fr_struct_to_network(&work_dbuff, da_stack, depth, cursor, encode_ctx, encode_value, NULL); goto done; } diff --git a/src/protocols/dhcpv4/base.c b/src/protocols/dhcpv4/base.c index fd0844ba82b..2b5fb75fe13 100644 --- a/src/protocols/dhcpv4/base.c +++ b/src/protocols/dhcpv4/base.c @@ -300,7 +300,7 @@ void *fr_dhcpv4_next_encodable(fr_dlist_head_t *list, void *current, void *uctx) PAIR_VERIFY(c); if (c->da->dict != dict || c->da->flags.internal) continue; - if (c->da->type == FR_TYPE_BOOL && da_is_bool_exists(c->da) && !c->vp_bool) continue; + if (c->vp_type == FR_TYPE_BOOL && da_is_bool_exists(c->da) && !c->vp_bool) continue; break; } diff --git a/src/protocols/dhcpv4/decode.c b/src/protocols/dhcpv4/decode.c index 3e1dab25407..8cb840dfe78 100644 --- a/src/protocols/dhcpv4/decode.c +++ b/src/protocols/dhcpv4/decode.c @@ -137,7 +137,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t return fr_pair_raw_from_network(ctx, out, da, data, 0); } - switch (vp->da->type) { + switch (vp->vp_type) { /* * Doesn't include scope, whereas the generic format can */ @@ -168,7 +168,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t break; case FR_TYPE_STRUCTURAL: - fr_strerror_printf("Cannot decode type '%s' as value", fr_type_to_str(vp->da->type)); + fr_strerror_printf("Cannot decode type '%s' as value", fr_type_to_str(vp->vp_type)); talloc_free(vp); return 0; @@ -265,7 +265,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t FALL_THROUGH; default: - slen = fr_value_box_from_network(vp, &vp->data, vp->da->type, da, + slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, da, &FR_DBUFF_TMP(p, end - p), end - p, true); if (slen < 0) { raw: diff --git a/src/protocols/dhcpv4/encode.c b/src/protocols/dhcpv4/encode.c index 7d8413171d7..48f2d30eef4 100644 --- a/src/protocols/dhcpv4/encode.c +++ b/src/protocols/dhcpv4/encode.c @@ -75,7 +75,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, /* * Structures are special. */ - if ((vp->da->type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { + if ((vp->vp_type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { slen = fr_struct_to_network(&work_dbuff, da_stack, depth, cursor, encode_ctx, encode_value, encode_cursor); if (slen <= 0) return slen; @@ -424,7 +424,7 @@ static ssize_t encode_child(fr_dbuff_t *dbuff, } } - fr_assert(fr_type_is_structural(vp->da->type)); + fr_assert(fr_type_is_structural(vp->vp_type)); fr_pair_dcursor_init(&child_cursor, &vp->vp_group); work_dbuff = FR_DBUFF(dbuff); @@ -684,7 +684,7 @@ static ssize_t encode_vsio(fr_dbuff_t *dbuff, ssize_t len; fr_dcursor_t vsa_cursor; - if (vp->da->type != FR_TYPE_VENDOR) continue; + if (vp->vp_type != FR_TYPE_VENDOR) continue; fr_pair_dcursor_init(&vsa_cursor, &vp->vp_group); diff --git a/src/protocols/dhcpv4/packet.c b/src/protocols/dhcpv4/packet.c index 1399156786b..4c8eb31460b 100644 --- a/src/protocols/dhcpv4/packet.c +++ b/src/protocols/dhcpv4/packet.c @@ -332,7 +332,7 @@ int fr_dhcpv4_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, * the data type matches the pair, i.e address to prefix * conversion. */ - if (fr_value_box_cast(vp, &vp->data, vp->da->type, vp->da, &netaddr->data) < 0) return -1; + if (fr_value_box_cast(vp, &vp->data, vp->vp_type, vp->da, &netaddr->data) < 0) return -1; } else if (giaddr != htonl(INADDR_ANY)) { /* @@ -340,7 +340,7 @@ int fr_dhcpv4_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, */ if (fr_value_box_from_network(vp, &box, FR_TYPE_IPV4_ADDR, NULL, &FR_DBUFF_TMP(data + 24, 4), 4, true) < 0) return -1; - if (fr_value_box_cast(vp, &vp->data, vp->da->type, vp->da, &box) < 0) return -1; + if (fr_value_box_cast(vp, &vp->data, vp->vp_type, vp->da, &box) < 0) return -1; } else { /* @@ -348,7 +348,7 @@ int fr_dhcpv4_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, */ if (fr_value_box_from_network(vp, &box, FR_TYPE_IPV4_ADDR, NULL, &FR_DBUFF_TMP(data + 12, 4), 4, true) < 0) return -1; - if (fr_value_box_cast(vp, &vp->data, vp->da->type, vp->da, &box) < 0) return -1; + if (fr_value_box_cast(vp, &vp->data, vp->vp_type, vp->da, &box) < 0) return -1; } fr_pair_append(&tmp, vp); diff --git a/src/protocols/dhcpv6/base.c b/src/protocols/dhcpv6/base.c index db5ab680fef..048cb025a8b 100644 --- a/src/protocols/dhcpv6/base.c +++ b/src/protocols/dhcpv6/base.c @@ -608,7 +608,7 @@ ssize_t fr_dhcpv6_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *pa */ vp = fr_pair_afrom_da(ctx, attr_hop_count); if (!vp) goto fail; - if (fr_value_box_from_network(vp, &vp->data, vp->da->type, NULL, + if (fr_value_box_from_network(vp, &vp->data, vp->vp_type, NULL, &FR_DBUFF_TMP(packet + 1, 1), 1, true) < 0) { goto fail; } @@ -616,7 +616,7 @@ ssize_t fr_dhcpv6_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *pa vp = fr_pair_afrom_da(ctx, attr_relay_link_address); if (!vp) goto fail; - if (fr_value_box_from_network(vp, &vp->data, vp->da->type, NULL, + if (fr_value_box_from_network(vp, &vp->data, vp->vp_type, NULL, &FR_DBUFF_TMP(packet + 2, 16), 16, true) < 0) { goto fail; } @@ -624,7 +624,7 @@ ssize_t fr_dhcpv6_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *pa vp = fr_pair_afrom_da(ctx, attr_relay_peer_address); if (!vp) goto fail; - if (fr_value_box_from_network(vp, &vp->data, vp->da->type, NULL, + if (fr_value_box_from_network(vp, &vp->data, vp->vp_type, NULL, &FR_DBUFF_TMP(packet + 2 + 16, 16), 16, true) < 0) { goto fail; } @@ -703,7 +703,7 @@ void *fr_dhcpv6_next_encodable(fr_dlist_head_t *list, void *current, void *uctx) while ((c = fr_dlist_next(list, c))) { PAIR_VERIFY(c); if (c->da->dict != dict || c->da->flags.internal) continue; - if (c->da->type == FR_TYPE_BOOL && !c->vp_bool) continue; + if (c->vp_type == FR_TYPE_BOOL && !c->vp_bool) continue; break; } diff --git a/src/protocols/dhcpv6/decode.c b/src/protocols/dhcpv6/decode.c index 4ad26ab3ee7..0a5452738c6 100644 --- a/src/protocols/dhcpv6/decode.c +++ b/src/protocols/dhcpv6/decode.c @@ -166,7 +166,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, vp = fr_pair_afrom_da(ctx, parent); if (!vp) return PAIR_DECODE_OOM; - slen = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(data, data_len), data_len, true); if (slen < 0) { talloc_free(vp); @@ -211,7 +211,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, */ if (data_len < sizeof(vp->vp_ipv6addr)) goto raw; - slen = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(data, sizeof(vp->vp_ipv6addr)), sizeof(vp->vp_ipv6addr), true); if (slen < 0) { talloc_free(vp); @@ -223,7 +223,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, vp = fr_pair_afrom_da(ctx, parent); if (!vp) return PAIR_DECODE_OOM; - slen = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(data, data_len), data_len, true); if (slen < 0) { talloc_free(vp); diff --git a/src/protocols/dhcpv6/encode.c b/src/protocols/dhcpv6/encode.c index 060aaab926f..b28133ce84c 100644 --- a/src/protocols/dhcpv6/encode.c +++ b/src/protocols/dhcpv6/encode.c @@ -92,7 +92,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, /* * Pack multiple attributes into into a single option */ - if ((vp->da->type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { + if ((vp->vp_type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { slen = fr_struct_to_network(&work_dbuff, da_stack, depth, cursor, encode_ctx, encode_value, encode_cursor); if (slen <= 0) return slen; @@ -407,7 +407,7 @@ static ssize_t encode_child(fr_dbuff_t *dbuff, } } - fr_assert(fr_type_is_structural(vp->da->type)); + fr_assert(fr_type_is_structural(vp->vp_type)); fr_pair_dcursor_init(&child_cursor, &vp->vp_group); work_dbuff = FR_DBUFF(dbuff); diff --git a/src/protocols/dns/decode.c b/src/protocols/dns/decode.c index b33b93a6340..636d4556945 100644 --- a/src/protocols/dns/decode.c +++ b/src/protocols/dns/decode.c @@ -153,7 +153,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, vp = fr_pair_afrom_da(ctx, parent); if (!vp) return PAIR_DECODE_OOM; - if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + if (fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(data, data_len), data_len, true) < 0) { FR_PROTO_TRACE("failed decoding?"); talloc_free(vp); diff --git a/src/protocols/dns/encode.c b/src/protocols/dns/encode.c index 664e767235c..7dad54b7e59 100644 --- a/src/protocols/dns/encode.c +++ b/src/protocols/dns/encode.c @@ -92,7 +92,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, /* * Nested structs */ - if (vp->da->type == FR_TYPE_STRUCT) { + if (vp->vp_type == FR_TYPE_STRUCT) { fr_dcursor_t child_cursor; fr_pair_dcursor_init(&child_cursor, &vp->vp_group); @@ -256,7 +256,7 @@ static ssize_t encode_child(fr_dbuff_t *dbuff, } } - fr_assert(fr_type_is_structural(vp->da->type)); + fr_assert(fr_type_is_structural(vp->vp_type)); fr_pair_dcursor_init(&child_cursor, &vp->vp_group); work_dbuff = FR_DBUFF(dbuff); @@ -433,7 +433,7 @@ static ssize_t fr_dns_encode_rr(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, void *e FR_PROTO_TRACE("encode_rr -- remaining %zd", fr_dbuff_remaining(&work_dbuff)); vp = fr_dcursor_current(cursor); - if (vp->da->type == FR_TYPE_STRUCT) { + if (vp->vp_type == FR_TYPE_STRUCT) { fr_dcursor_t child_cursor; fr_pair_dcursor_init(&child_cursor, &vp->vp_group); diff --git a/src/protocols/internal/decode.c b/src/protocols/internal/decode.c index 60f74f8b177..690906aafc7 100644 --- a/src/protocols/internal/decode.c +++ b/src/protocols/internal/decode.c @@ -51,7 +51,7 @@ static ssize_t internal_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t *head, /* * Zero length is fine here */ - slen = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &work_dbuff, fr_dbuff_len(&work_dbuff), tainted); if (slen < 0) { talloc_free(vp); diff --git a/src/protocols/radius/decode.c b/src/protocols/radius/decode.c index b6840f5996c..5c8218f72fd 100644 --- a/src/protocols/radius/decode.c +++ b/src/protocols/radius/decode.c @@ -1867,7 +1867,7 @@ ssize_t fr_radius_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t *out, default: decode: - ret = fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + ret = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(p, data_len), data_len, true); if (ret < 0) { /* diff --git a/src/protocols/radius/encode.c b/src/protocols/radius/encode.c index 41d8bb95591..db8d13c7e70 100644 --- a/src/protocols/radius/encode.c +++ b/src/protocols/radius/encode.c @@ -390,7 +390,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, /* * This has special requirements. */ - if ((vp->da->type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { + if ((vp->vp_type == FR_TYPE_STRUCT) || (da->type == FR_TYPE_STRUCT)) { slen = fr_struct_to_network(&work_dbuff, da_stack, depth, cursor, encode_ctx, encode_value, encode_tlv); if (slen < 0) return slen; @@ -435,7 +435,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, * tag, then we always encode a tag byte, even one that * is zero. */ - if ((vp->da->type == FR_TYPE_STRING) && flag_has_tag(&vp->da->flags)) { + if ((vp->vp_type == FR_TYPE_STRING) && flag_has_tag(&vp->da->flags)) { if (packet_ctx->tag) { FR_DBUFF_IN_RETURN(&work_dbuff, (uint8_t)packet_ctx->tag); } else if (TAG_VALID(vp->vp_strvalue[0])) { @@ -606,7 +606,7 @@ static ssize_t encode_value(fr_dbuff_t *dbuff, * same tunnel. Valid values for this field are 0x01 through 0x1F, * inclusive. If the Tag field is unused, it MUST be zero (0x00). */ - if ((vp->da->type == FR_TYPE_UINT32) && flag_has_tag(&vp->da->flags)) { + if ((vp->vp_type == FR_TYPE_UINT32) && flag_has_tag(&vp->da->flags)) { uint8_t msb = 0; /* * Only 24bit integers are allowed here @@ -1466,7 +1466,7 @@ ssize_t fr_radius_encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, void *enc /* * Tags are *top-level*, and are never nested. */ - if (vp->da->type == FR_TYPE_GROUP) { + if (vp->vp_type == FR_TYPE_GROUP) { fr_radius_ctx_t *packet_ctx = encode_ctx; if (!vp->da->flags.internal || @@ -1491,7 +1491,7 @@ ssize_t fr_radius_encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, void *enc /* * Check for zero-length attributes. */ - switch (vp->da->type) { + switch (vp->vp_type) { default: break; @@ -1527,7 +1527,7 @@ ssize_t fr_radius_encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, void *enc * Fast path for the common case. */ if (vp->da->parent->flags.is_root && !vp->da->flags.subtype) { - switch (vp->da->type) { + switch (vp->vp_type) { case FR_TYPE_LEAF: da_stack.da[0] = vp->da; da_stack.da[1] = NULL; diff --git a/src/protocols/tacacs/encode.c b/src/protocols/tacacs/encode.c index cacbcac0319..4e174f30210 100644 --- a/src/protocols/tacacs/encode.c +++ b/src/protocols/tacacs/encode.c @@ -164,7 +164,7 @@ static uint8_t tacacs_encode_body_arg_cnt(fr_pair_list_t *vps, fr_dict_attr_t co /* * Recurse into children. */ - if (vp->da->type == FR_TYPE_VENDOR) { + if (vp->vp_type == FR_TYPE_VENDOR) { arg_cnt += tacacs_encode_body_arg_cnt(&vp->vp_group, NULL); continue; } @@ -205,7 +205,7 @@ static ssize_t tacacs_encode_body_arg_n(fr_dbuff_t *dbuff, uint8_t arg_cnt, uint FR_PROTO_TRACE("arg[%d] --> %s", i, vp->vp_strvalue); len = vp->vp_length; - } else if (vp->da->type == FR_TYPE_VENDOR) { + } else if (vp->vp_type == FR_TYPE_VENDOR) { ssize_t slen; uint8_t child_argc; diff --git a/src/protocols/vmps/vmps.c b/src/protocols/vmps/vmps.c index cd1214472dd..d1ad45b2e4c 100644 --- a/src/protocols/vmps/vmps.c +++ b/src/protocols/vmps/vmps.c @@ -216,7 +216,7 @@ int fr_vmps_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const *data, si * * @todo - if the attribute is malformed, create a "raw" one. */ - if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, + if (fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da, &FR_DBUFF_TMP(ptr, attr_len), attr_len, true) < 0) { talloc_free(vp); return -1; @@ -312,7 +312,7 @@ ssize_t fr_vmps_encode(fr_dbuff_t *dbuff, uint8_t const *original, continue; } - if (!fr_type_is_leaf(vp->da->type)) continue; + if (!fr_type_is_leaf(vp->vp_type)) continue; DEBUG2("&%pP", vp);