ssize_t slen;
fr_value_box_t *box = fr_dlist_head(&out->result);
+ if (!box) {
+ RWDEBUG("No value found for assignment");
+ return -1;
+ }
+
/*
* Mash all of the results together.
*/
if (fr_type_is_group(da->type)) da = fr_dict_root(request->dict);
children = ¤t->rhs.pair_list;
- copy_vps = false;
/*
* For exec, etc., parse the pair list from a string, in the context of the
{
map_t const *map = current->map;
- fr_assert(current->lhs.vp != NULL);
-
/*
* The LHS isn't an xlat, so just append the expanded value-boxes to the parents result.
*/
{
if (tmpl_from_result(state, ¤t->lhs, tmpl_da(current->parent->lhs.vpt)->type, request) < 0) return -1;
- return check_lhs(request, state, current);
+ return current->check_lhs(request, state, current);
}
static int expand_lhs(request_t *request, unlang_frame_state_edit_t *state, edit_map_t *current)
if (rcode < 0) return -1;
if (rcode == 1) {
- current->func = expanded_lhs_attribute;
+ current->func = current->expanded_lhs;
return 1;
}
}
/*
- * Stop if there's no parnt to process.
+ * Stop if there's no parent to process.
*/
if (!state->current->parent) break;
#
# PRE: if
#
-&request <= {
- &Tmp-String-0 = '9870'
- &Tmp-Octets-0 = 0x39383731
- &Tmp-IP-Address-0 = 57.56.55.50
- &Tmp-Integer-0 = 959985460
- &Tmp-Cast-IfId = '0000:0000:3938:3737'
- &Tmp-Cast-IPv6Addr = '::3938:3738'
- &Tmp-Cast-IPv6Prefix = '::3938:3739/128'
- &Tmp-Cast-Byte = 58
- &Tmp-Cast-Short = 14139
- &Tmp-Cast-Ether = 00:00:39:38:37:3c
- &Tmp-Cast-Integer64 = 1152921505566832445
- &Tmp-Cast-IPv4Prefix = 57.56.55.62/32
-}
+&Tmp-String-0 := '9870'
+&Tmp-Octets-0 := 0x39383731
+&Tmp-IP-Address-0 := 57.56.55.50
+&Tmp-Integer-0 := 959985460
+&Tmp-Cast-IfId := '0000:0000:3938:3737'
+&Tmp-Cast-IPv6Addr := '::3938:3738'
+&Tmp-Cast-IPv6Prefix := '::3938:3739/128'
+&Tmp-Cast-Byte := 58
+&Tmp-Cast-Short := 14139
+&Tmp-Cast-Ether := 00:00:39:38:37:3c
+&Tmp-Cast-Integer64 := 1152921505566832445
+&Tmp-Cast-IPv4Prefix := 57.56.55.62/32
ok # break up edit sections