};
static fr_dict_attr_t const *attr_packet_type;
+static fr_dict_attr_t const *attr_net;
extern fr_dict_attr_autoload_t unit_test_module_dict_attr[];
fr_dict_attr_autoload_t unit_test_module_dict_attr[] = {
{ .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_protocol },
+ { .out = &attr_net, .name = "Net", .type = FR_TYPE_TLV, .dict = &dict_freeradius },
{ NULL }
};
if (fr_packet_pairs_from_packet(request->request_ctx, &request->request_pairs, request->packet) < 0) {
fr_strerror_const("Failed converting packet IPs to attributes");
goto error;
- }
+ }
+
+ /*
+ * For lazines in the tests, allow the Net.* to be mutable
+ */
+ for (vp = fr_pair_dcursor_by_ancestor_init(&cursor, &request->request_pairs, attr_net);
+ vp != NULL;
+ vp = fr_dcursor_next(&cursor)) {
+ if (!fr_type_is_leaf(vp->vp_type)) continue;
+ vp->data.immutable = false;
+ }
if (fr_debug_lvl) {
for (vp = fr_pair_dcursor_init(&cursor, &request->request_pairs);
#
&request -= &Packet-Type[*]
+#
+# HACK: the edit code does not currently support deleted by parent
+# when doing &request -= &Net[*]
+# or even &request -= &Net.[*]
+# which returns an error?
+#
+&request -= &Net.Src.IP
+&request -= &Net.Src.Port
+&request -= &Net.Dst.IP
+&request -= &Net.Dst.Port
+&request -= &Net.Timestamp
+&request -= &Net[*]
+
# 0. Check basic xlat parsing
&control.Tmp-String-1 := "%{json.encode:&request.[*]}"
&control.Tmp-String-2 := "%{json.encode:&request.[*] }"