]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
change vp->da->type to vp->vp_type
authorAlan T. DeKok <aland@freeradius.org>
Mon, 17 Jul 2023 18:13:16 +0000 (14:13 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 17 Jul 2023 18:14:47 +0000 (14:14 -0400)
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

23 files changed:
src/listen/bfd/proto_bfd.c
src/listen/ldap_sync/proto_ldap_sync_ldap.c
src/listen/radius/proto_radius.c
src/listen/tacacs/proto_tacacs.c
src/modules/rlm_eap/types/rlm_eap_ttls/ttls.c
src/modules/rlm_lua/lua.c
src/modules/rlm_sql/sql.c
src/protocols/bfd/decode.c
src/protocols/bfd/encode.c
src/protocols/dhcpv4/base.c
src/protocols/dhcpv4/decode.c
src/protocols/dhcpv4/encode.c
src/protocols/dhcpv4/packet.c
src/protocols/dhcpv6/base.c
src/protocols/dhcpv6/decode.c
src/protocols/dhcpv6/encode.c
src/protocols/dns/decode.c
src/protocols/dns/encode.c
src/protocols/internal/decode.c
src/protocols/radius/decode.c
src/protocols/radius/encode.c
src/protocols/tacacs/encode.c
src/protocols/vmps/vmps.c

index f225d89a9397f45e18e5e74dced71c70b31691c0..91fe84db3fe730727bfab58ff394ed31dbf844af 100644 (file)
@@ -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;
 
index 2b34d927479f751fa99888fb46b7c09277c0efa9..b37de369850755e88caf3851e29d57e9a48f7cb7 100644 (file)
@@ -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);
index 74bf2a5a0def55ae4099152848f762d4a8a46d3c..9d6002cf286bb429482a3766ef2cf91c2aa2fa5f 100644 (file)
@@ -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;
 
index 5a393a19fe78b212539683dd1b389101869dfbcb..7ae40c505848c5e2f1c040a9303ca38ba3c987f5 100644 (file)
@@ -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;
 
index d06286031d1997aadb04ce09be08eba5186440dc..ebdfc80f17c8cf0520567cc3ef095b7ec3bb6c5f 100644 (file)
@@ -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) {
                        /*
index 8da536c15babb2ce339be3f458d8051b53edfd44..378d6ec65bb113d79834d45b2745be0fe220ad37 100644 (file)
@@ -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;
                }
index c9029e852dd71ad641b3972bf8e4ef03c1dc6e0e..7c385833c7f263712e77c754ff88ed5bb19825b2 100644 (file)
@@ -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.
                 *
index 44a26e5330cabd82544c3f924c8de91c1db043d6..fdd6af3b9ecb64ff5487153cdff78a346e166b39 100644 (file)
@@ -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);
index 0cf3cbfd81d178f9f25b2f0fda1e4760770c12c9..80e272dc754410a353edefccc27e74baed884b94 100644 (file)
@@ -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;
        }
index fd0844ba82b99ba9e8c9bd0b678e55d04b109e5f..2b5fb75fe130e2861c5b7ee50927276d4b6281ff 100644 (file)
@@ -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;
        }
index 3e1dab2540710cb5cb4a14c46ccf9041c633da9a..8cb840dfe78b5845c8f40a3b9c873d41cd921071 100644 (file)
@@ -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:
index 7d8413171d76a8286be80fd046ff9b0d67d60427..48f2d30eef477fb6c1e5542ca2cb9528b8841a81 100644 (file)
@@ -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);
 
index 1399156786b49fdc9e4eae95b354c68e60bf7e10..4c8eb31460bd941204e70e3d045498ff7bc665a3 100644 (file)
@@ -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);
index db5ab680fefd08ee47b3e2926ea7ed32b95b7aed..048cb025a8bdf5efdcc36e74b413a6a80c1e7add 100644 (file)
@@ -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;
        }
index 4ad26ab3ee76910c7f464f14d28d405256a31c47..0a5452738c68b5574673e98e1652a139b7a6b356 100644 (file)
@@ -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);
index 060aaab926f9cdb3f2f73cb914e3b7827b9eeaeb..b28133ce84cef4020cadaf58101a958274fb1bc2 100644 (file)
@@ -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);
index b33b93a63404f605a6b6d7039d2aab5bbd2272d6..636d4556945d9e36df619999ef90a90d6140089d 100644 (file)
@@ -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);
index 664e767235cc433789705a5e31abd08ca75483a6..7dad54b7e59c4ebccc601d3af2a838773f9aeabe 100644 (file)
@@ -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);
index 60f74f8b17769af00091ee5fbfedd26779a871ab..690906aafc7c64676134221bf6abf2bb7fd5552d 100644 (file)
@@ -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);
index b6840f5996ccca62e005c1ba8fc7517cd3825a9f..5c8218f72fd54c292eabef1c28efdd8d3fa81ab9 100644 (file)
@@ -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) {
                        /*
index 41d8bb9559118ad118efaa74ec4f081cd193a582..db8d13c7e70ede8e1e6a3002630e5c6ba48c3be0 100644 (file)
@@ -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;
index cacbcac0319edeb002203b4154ae9f8eb105353a..4e174f30210fcd16dac4700005e07bba76022595 100644 (file)
@@ -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;
 
index cd1214472dd173bf4a814dec32e53ea9860c5c77..d1ad45b2e4cbea196b2b61a7290c2143e2d3a6ad 100644 (file)
@@ -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);