From: Alan T. DeKok Date: Thu, 13 Jul 2023 18:35:20 +0000 (-0400) Subject: Revert "revert DHCPv6 struct_nested patch" X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ea1bf79ecf3ec9fb0edd4650b07123edf7e04cf;p=thirdparty%2Ffreeradius-server.git Revert "revert DHCPv6 struct_nested patch" This reverts commit 500ee71862765d26694e52b41169958406347334. --- diff --git a/src/protocols/dhcpv6/decode.c b/src/protocols/dhcpv6/decode.c index 847d27a4cb8..4ad26ab3ee7 100644 --- a/src/protocols/dhcpv6/decode.c +++ b/src/protocols/dhcpv6/decode.c @@ -73,6 +73,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, ssize_t slen; fr_pair_t *vp = NULL; uint8_t prefix_len; + fr_dhcpv6_decode_ctx_t *packet_ctx = decode_ctx; FR_PROTO_HEX_DUMP(data, data_len, "decode_value"); @@ -175,7 +176,7 @@ static ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, break; case FR_TYPE_STRUCT: - slen = fr_struct_from_network(ctx, out, parent, data, data_len, false, + slen = fr_struct_from_network(ctx, out, parent, data, data_len, packet_ctx->struct_nested, decode_ctx, decode_value_trampoline, decode_tlv_trampoline); if (slen < 0) goto raw; diff --git a/src/protocols/dhcpv6/dhcpv6.h b/src/protocols/dhcpv6/dhcpv6.h index 2b880655f07..cce442f2b82 100644 --- a/src/protocols/dhcpv6/dhcpv6.h +++ b/src/protocols/dhcpv6/dhcpv6.h @@ -142,6 +142,7 @@ typedef struct { uint32_t transaction_id; //!< previous transaction ID uint8_t *duid; //!< the expected DUID, in wire format size_t duid_len; //!< length of the expected DUID + bool struct_nested; //!< decode structs as nested } fr_dhcpv6_decode_ctx_t; /*