From d4e526e957876260fa9265519346efad86e43512 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Tue, 3 Sep 2024 15:05:11 -0400 Subject: [PATCH] add TMP TLV and test --- .../freeradius/dictionary.freeradius.internal | 6 +++ src/tests/keywords/foreach-tlv.ignore | 39 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/tests/keywords/foreach-tlv.ignore diff --git a/share/dictionary/freeradius/dictionary.freeradius.internal b/share/dictionary/freeradius/dictionary.freeradius.internal index 7b11c8099b77..615d822c60d8 100644 --- a/share/dictionary/freeradius/dictionary.freeradius.internal +++ b/share/dictionary/freeradius/dictionary.freeradius.internal @@ -380,6 +380,12 @@ ATTRIBUTE Tmp-Time-Delta-7 1807 time_delta ATTRIBUTE Tmp-Time-Delta-8 1808 time_delta ATTRIBUTE Tmp-Time-Delta-9 1809 time_delta +ATTRIBUTE Tmp-TLV-0 1810 tlv +ATTRIBUTE a .1 uint32 +ATTRIBUTE b .2 uint32 +ATTRIBUTE c .3 string +ATTRIBUTE d .4 ipaddr + # # 1810 - 1879 - unused # diff --git a/src/tests/keywords/foreach-tlv.ignore b/src/tests/keywords/foreach-tlv.ignore new file mode 100644 index 000000000000..f6c8aab895c4 --- /dev/null +++ b/src/tests/keywords/foreach-tlv.ignore @@ -0,0 +1,39 @@ +# +# PRE: foreach +# +# Loop over children of a TLV. +# +# Note that the only data types compatible with all data types are "string" or "octets" +# +string out + +&Tmp-TLV-0 := { + &a = 1 + &b = 2 + &c = "foo" + &d = 127.0.0.1 +} + +&request += { + &Tmp-TLV-0 = { + &a = 2112 + &b = 6809 + &c = "bar" + &d = 192.0.2.1 + } +} + + +&out = "" + +# +# Home-brew concat! +# +foreach child (&Tmp-TLV-0[*]) { + &out += &child.c + &out += " " +} + +&out -= " " + +"%{out}"