*/
case FR_TYPE_GROUP:
our_parent = namespace = fr_dict_attr_ref(da);
+
+ /*
+ * if there's a real dictionary, and this reference is to group which is in fact
+ * the internal dict, then just keep using our dict_def.
+ */
+ if (t_rules->dict_def && (namespace == fr_dict_root(fr_dict_internal()))) {
+ our_parent = namespace = fr_dict_root(t_rules->dict_def);
+ }
break;
case FR_TYPE_STRUCT:
# @todo - we only support ONE layer of nesting under &control,
# &request, etc. for now. We should support more.
#
-# i.e. &control.Tmp-Group-0.Tmp-Group-1 := { ... } will NOT work.
-#
-# There are also issues with changing dictionaries. Putting RADIUS
-# attributes into a Tmp-Group (internal dict) will work, but they
-# cannot be referenced.
-#
&control.Tmp-Group-0 := {
&Tmp-Integer-0 = 1
}
if (!&control.Tmp-Group-0.Tmp-Integer-0) {
- test_fail;
+ test_fail
}
if (&control.Tmp-Group-0.Tmp-Integer-0 != 1) {
- test_fail;
+ test_fail
}
#
&control.Tmp-Group-0.Tmp-Integer-0 += 5
if (&control.Tmp-Group-0.Tmp-Integer-0 != 6) {
- test_fail;
+ test_fail
}
#
&control.Tmp-Group-0 -= &Tmp-Integer-0
if (&control.Tmp-Group-0.Tmp-Integer-0) {
- test_fail;
+ test_fail
}
#
}
if (&control.Tmp-Group-0.Tmp-IP-Address-0 != 127.0.0.1) {
- test_fail;
+ test_fail
}
#
}
if (&control.Tmp-Group-0.Tmp-IP-Address-0 != 127.0.0.1) {
- test_fail;
+ test_fail
}
if (&control.Tmp-Group-0.Tmp-Octets-0 != 0xabcdef) {
- test_fail;
+ test_fail
}
success