*
* @{
*/
-#define tmpl_data data.literal
-#define tmpl_data_type data.literal.type
-#define tmpl_data_length data.literal.data.length
-#define tmpl_data_value data.literal.data
+#define tmpl_value_box data.literal
+#define tmpl_value_box_type data.literal.type
+#define tmpl_value_box_length data.literal.data.length
+#define tmpl_value_box_datum data.literal.data
/* @} **/
/** @name Field accessors for #TMPL_TYPE_REGEX_STRUCT and #TMPL_TYPE_REGEX
EVAL_DEBUG("NORMALISATION TYPE %s (IMPLICIT FROM RHS REF)",
fr_int2str(dict_attr_types, cast->type, "<INVALID>"));
} else if (map->lhs->type == TMPL_TYPE_DATA) {
- cast_type = map->lhs->tmpl_data_type;
+ cast_type = map->lhs->tmpl_value_box_type;
EVAL_DEBUG("NORMALISATION TYPE %s (IMPLICIT FROM LHS DATA)",
fr_int2str(dict_attr_types, cast_type, "<INVALID>"));
} else if (map->rhs->type == TMPL_TYPE_DATA) {
- cast_type = map->rhs->tmpl_data_type;
+ cast_type = map->rhs->tmpl_value_box_type;
EVAL_DEBUG("NORMALISATION TYPE %s (IMPLICIT FROM RHS DATA)",
fr_int2str(dict_attr_types, cast_type, "<INVALID>"));
}
break;
case TMPL_TYPE_DATA:
- rhs_type = map->rhs->tmpl_data_type;
- rhs = &map->rhs->tmpl_data_value;
+ rhs_type = map->rhs->tmpl_value_box_type;
+ rhs = &map->rhs->tmpl_value_box_datum;
CHECK_INT_CAST(lhs, rhs);
CAST(lhs);
case TMPL_TYPE_DATA:
rcode = cond_normalise_and_cmp(request, c,
- map->lhs->tmpl_data_type, NULL, &map->lhs->tmpl_data_value);
+ map->lhs->tmpl_value_box_type, NULL, &map->lhs->tmpl_value_box_datum);
break;
case TMPL_TYPE_UNPARSED:
map->rhs = tmpl_alloc(map, TMPL_TYPE_DATA, NULL, 0, T_INVALID);
if (!map->rhs) goto free_vp;
- map->rhs->tmpl_data_type = da->type;
- map->rhs->tmpl_data_length = vp->vp_length;
+ map->rhs->tmpl_value_box_type = da->type;
+ map->rhs->tmpl_value_box_length = vp->vp_length;
if (vp->da->flags.is_pointer) {
if (vp->da->type == PW_TYPE_STRING) {
- map->rhs->tmpl_data_value.datum.ptr = talloc_bstrndup(map->rhs, vp->vp_ptr, vp->vp_length);
+ map->rhs->tmpl_value_box_datum.datum.ptr = talloc_bstrndup(map->rhs, vp->vp_ptr, vp->vp_length);
map->rhs->quote = T_SINGLE_QUOTED_STRING;
} else {
- map->rhs->tmpl_data_value.datum.ptr = talloc_memdup(map->rhs, vp->vp_ptr, vp->vp_length);
+ map->rhs->tmpl_value_box_datum.datum.ptr = talloc_memdup(map->rhs, vp->vp_ptr, vp->vp_length);
map->rhs->quote = T_BARE_WORD;
}
} else {
- value_box_copy(map->rhs, &map->rhs->tmpl_data_value, vp->da->type, &vp->data);
+ value_box_copy(map->rhs, &map->rhs->tmpl_value_box_datum, vp->da->type, &vp->data);
map->rhs->quote = T_BARE_WORD;
}
map->rhs->name = fr_pair_value_asprint(map->rhs, vp, fr_token_quote[map->rhs->quote]);
new = fr_pair_afrom_da(ctx, map->lhs->tmpl_da);
if (!new) return -1;
- if (map->lhs->tmpl_da->type == map->rhs->tmpl_data_type) {
- if (value_box_copy(new, &new->data, new->da->type, &map->rhs->tmpl_data_value) < 0) {
+ if (map->lhs->tmpl_da->type == map->rhs->tmpl_value_box_type) {
+ if (value_box_copy(new, &new->data, new->da->type, &map->rhs->tmpl_value_box_datum) < 0) {
rcode = -1;
goto error;
}
} else {
- if (value_box_cast(new, &new->data, new->da->type, new->da, map->rhs->tmpl_data_type,
- NULL, &map->rhs->tmpl_data_value) < 0) {
+ if (value_box_cast(new, &new->data, new->da->type, new->da, map->rhs->tmpl_value_box_type,
+ NULL, &map->rhs->tmpl_value_box_datum) < 0) {
REDEBUG("Implicit cast failed: %s", fr_strerror());
rcode = -1;
goto error;
* Fixup LHS da if it doesn't match the type
* of the RHS.
*/
- if (map->lhs->tmpl_da->type != map->rhs->tmpl_data_type) {
+ if (map->lhs->tmpl_da->type != map->rhs->tmpl_value_box_type) {
fr_dict_attr_t const *da;
da = fr_dict_attr_by_type(NULL, map->lhs->tmpl_da->vendor, map->lhs->tmpl_da->attr,
- map->rhs->tmpl_data_type);
+ map->rhs->tmpl_value_box_type);
if (!da) {
fr_strerror_printf("Cannot find %s variant of attribute \"%s\"",
- fr_int2str(dict_attr_types, map->rhs->tmpl_data_type,
+ fr_int2str(dict_attr_types, map->rhs->tmpl_value_box_type,
"<INVALID>"), map->lhs->tmpl_da->name);
return -1;
}
da = fr_dict_attr_by_type(NULL, c->data.map->lhs->tmpl_da->vendor,
c->data.map->lhs->tmpl_da->attr,
- c->data.map->rhs->tmpl_data_type);
+ c->data.map->rhs->tmpl_value_box_type);
if (!da) {
return_rhs("Cannot find type for attribute");
}
(type == PW_TYPE_STRING) ? T_DOUBLE_QUOTED_STRING : T_BARE_WORD);
if (steal) {
- if (value_box_steal(vpt, &vpt->tmpl_data_value, type, data) < 0) {
+ if (value_box_steal(vpt, &vpt->tmpl_value_box_datum, type, data) < 0) {
talloc_free(vpt);
return -1;
}
- vpt->tmpl_data_type = type;
+ vpt->tmpl_value_box_type = type;
} else {
- if (value_box_copy(vpt, &vpt->tmpl_data_value, type, data) < 0) {
+ if (value_box_copy(vpt, &vpt->tmpl_value_box_datum, type, data) < 0) {
talloc_free(vpt);
return -1;
}
- vpt->tmpl_data_type = type;
+ vpt->tmpl_value_box_type = type;
}
*out = vpt;
binlen = (inlen - 2) / 2;
vpt = tmpl_alloc(ctx, TMPL_TYPE_DATA, in, inlen, type);
- vpt->tmpl_data_value.datum.ptr = talloc_array(vpt, uint8_t, binlen);
- vpt->tmpl_data_length = binlen;
- vpt->tmpl_data_type = PW_TYPE_OCTETS;
+ vpt->tmpl_value_box_datum.datum.ptr = talloc_array(vpt, uint8_t, binlen);
+ vpt->tmpl_value_box_length = binlen;
+ vpt->tmpl_value_box_type = PW_TYPE_OCTETS;
- len = fr_hex2bin(vpt->tmpl_data_value.datum.ptr, binlen, in + 2, inlen - 2);
+ len = fr_hex2bin(vpt->tmpl_value_box_datum.datum.ptr, binlen, in + 2, inlen - 2);
if (len != binlen) {
fr_strerror_printf("Hex string contains none hex char");
talloc_free(vpt);
switch (vpt->type) {
case TMPL_TYPE_UNPARSED:
- vpt->tmpl_data_type = type;
+ vpt->tmpl_value_box_type = type;
/*
* Why do we pass a pointer to the tmpl type? Goddamn WiMAX.
*/
- if (value_box_from_str(vpt, &vpt->tmpl_data_value, &vpt->tmpl_data_type,
+ if (value_box_from_str(vpt, &vpt->tmpl_value_box_datum, &vpt->tmpl_value_box_type,
enumv, vpt->name, vpt->len, '\0') < 0) return -1;
vpt->type = TMPL_TYPE_DATA;
break;
{
value_box_t new;
- if (type == vpt->tmpl_data_type) return 0; /* noop */
+ if (type == vpt->tmpl_value_box_type) return 0; /* noop */
- if (value_box_cast(vpt, &new, type, enumv, vpt->tmpl_data_type,
- NULL, &vpt->tmpl_data_value) < 0) return -1;
+ if (value_box_cast(vpt, &new, type, enumv, vpt->tmpl_value_box_type,
+ NULL, &vpt->tmpl_value_box_datum) < 0) return -1;
/*
* Free old value buffers
*/
- switch (vpt->tmpl_data_type) {
+ switch (vpt->tmpl_value_box_type) {
case PW_TYPE_STRING:
case PW_TYPE_OCTETS:
- talloc_free(vpt->tmpl_data_value.datum.ptr);
+ talloc_free(vpt->tmpl_value_box_datum.datum.ptr);
break;
default:
break;
}
- value_box_copy(vpt, &vpt->tmpl_data_value, type, &new);
- vpt->tmpl_data_type = type;
+ value_box_copy(vpt, &vpt->tmpl_value_box_datum, type, &new);
+ vpt->tmpl_value_box_type = type;
}
break;
rad_assert(vpt != NULL);
rad_assert(vpt->type == TMPL_TYPE_UNPARSED);
- vpt->tmpl_data.vp_strvalue = talloc_typed_strdup(vpt, vpt->name);
- rad_assert(vpt->tmpl_data.vp_strvalue != NULL);
+ vpt->tmpl_value_box.vp_strvalue = talloc_typed_strdup(vpt, vpt->name);
+ rad_assert(vpt->tmpl_value_box.vp_strvalue != NULL);
vpt->type = TMPL_TYPE_DATA;
- vpt->tmpl_data_type = PW_TYPE_STRING;
- vpt->tmpl_data_length = talloc_array_length(vpt->tmpl_data.vp_strvalue) - 1;
+ vpt->tmpl_value_box_type = PW_TYPE_STRING;
+ vpt->tmpl_value_box_length = talloc_array_length(vpt->tmpl_value_box.vp_strvalue) - 1;
}
/** Expand a #vp_tmpl_t to a string, parse it as an attribute of type cast, create a #VALUE_PAIR from the result
if (vpt->type == TMPL_TYPE_DATA) {
VERIFY_VP(vp);
- rad_assert(vp->da->type == vpt->tmpl_data_type);
+ rad_assert(vp->da->type == vpt->tmpl_value_box_type);
- value_box_copy(vp, &vp->data, vpt->tmpl_data_type, &vpt->tmpl_data_value);
+ value_box_copy(vp, &vp->data, vpt->tmpl_value_box_type, &vpt->tmpl_value_box_datum);
*out = vp;
return 0;
}
ret = tmpl_find_vp(&vp, request, vpt);
if (ret < 0) return -2;
- to_cast = &vpt->tmpl_data_value;
- src_type = vpt->tmpl_data_type;
+ to_cast = &vpt->tmpl_value_box_datum;
+ src_type = vpt->tmpl_value_box_type;
}
break;
{
RDEBUG4("EXPAND TMPL DATA");
- to_cast = &vpt->tmpl_data_value;
- src_type = vpt->tmpl_data_type;
+ to_cast = &vpt->tmpl_value_box_datum;
+ src_type = vpt->tmpl_value_box_type;
switch (src_type) {
case PW_TYPE_STRING:
break;
case TMPL_TYPE_DATA:
- return value_box_snprint(out, outlen, vpt->tmpl_data_type, values, &vpt->tmpl_data_value,
+ return value_box_snprint(out, outlen, vpt->tmpl_value_box_type, values, &vpt->tmpl_value_box_datum,
fr_token_quote[vpt->quote]);
default:
if (!fr_cond_assert(0)) fr_exit_now(1);
}
- if (vpt->tmpl_data_type == PW_TYPE_INVALID) {
+ if (vpt->tmpl_value_box_type == PW_TYPE_INVALID) {
FR_FAULT_LOG("CONSISTENCY CHECK FAILED %s[%u]: TMPL_TYPE_DATA type was "
"PW_TYPE_INVALID (uninitialised)", file, line);
if (!fr_cond_assert(0)) fr_exit_now(1);
}
- if (vpt->tmpl_data_type >= PW_TYPE_MAX) {
+ if (vpt->tmpl_value_box_type >= PW_TYPE_MAX) {
FR_FAULT_LOG("CONSISTENCY CHECK FAILED %s[%u]: TMPL_TYPE_DATA type was "
- "%i (outside the range of PW_TYPEs)", file, line, vpt->tmpl_data_type);
+ "%i (outside the range of PW_TYPEs)", file, line, vpt->tmpl_value_box_type);
if (!fr_cond_assert(0)) fr_exit_now(1);
}
/*
* Unlike VALUE_PAIRs we can't guarantee that VALUE_PAIR_TMPL buffers will
* be talloced. They may be allocated on the stack or in global variables.
*/
- switch (vpt->tmpl_data_type) {
+ switch (vpt->tmpl_value_box_type) {
case PW_TYPE_STRING:
- if (vpt->tmpl_data.vp_strvalue[vpt->tmpl_data_length] != '\0') {
+ if (vpt->tmpl_value_box.vp_strvalue[vpt->tmpl_value_box_length] != '\0') {
FR_FAULT_LOG("CONSISTENCY CHECK FAILED %s[%u]: TMPL_TYPE_DATA char buffer not \\0 "
"terminated", file, line);
if (!fr_cond_assert(0)) fr_exit_now(1);
break;
default:
- if (vpt->tmpl_data_length == 0) {
+ if (vpt->tmpl_value_box_length == 0) {
FR_FAULT_LOG("CONSISTENCY CHECK FAILED %s[%u]: TMPL_TYPE_DATA data pointer not NULL "
"but len field is zero", file, line);
if (!fr_cond_assert(0)) fr_exit_now(1);
if ((head->lhs->tmpl_da->vendor == 0) && (head->lhs->tmpl_da->attr == PW_CACHE_CREATED)) {
vp_map_t *map;
- c->created = head->rhs->tmpl_data_value.datum.date;
+ c->created = head->rhs->tmpl_value_box_datum.datum.date;
map = head;
head = head->next;
if ((head->lhs->tmpl_da->vendor == 0) && (head->lhs->tmpl_da->attr == PW_CACHE_EXPIRES)) {
vp_map_t *map;
- c->expires = head->rhs->tmpl_data_value.datum.date;
+ c->expires = head->rhs->tmpl_value_box_datum.datum.date;
map = head;
head = head->next;
* Encode the entry created date
*/
tmpl_init(&created_value, TMPL_TYPE_DATA, "<TEMP>", 6, T_BARE_WORD);
- created_value.tmpl_data_type = PW_TYPE_DATE;
- created_value.tmpl_data_length = sizeof(created_value.tmpl_data_value.datum.date);
- created_value.tmpl_data_value.datum.date = c->created;
+ created_value.tmpl_value_box_type = PW_TYPE_DATE;
+ created_value.tmpl_value_box_length = sizeof(created_value.tmpl_value_box_datum.datum.date);
+ created_value.tmpl_value_box_datum.datum.date = c->created;
/*
* Encode the entry expiry time
* to ignore entries that were created before the last epoch.
*/
tmpl_init(&expires_value, TMPL_TYPE_DATA, "<TEMP>", 6, T_BARE_WORD);
- expires_value.tmpl_data_type = PW_TYPE_DATE;
- expires_value.tmpl_data_length = sizeof(expires_value.tmpl_data_value.datum.date);
- expires_value.tmpl_data_value.datum.date = c->expires;
+ expires_value.tmpl_value_box_type = PW_TYPE_DATE;
+ expires_value.tmpl_value_box_length = sizeof(expires_value.tmpl_value_box_datum.datum.date);
+ expires_value.tmpl_value_box_datum.datum.date = c->expires;
expires.next = c->maps; /* Head of the list */
for (cnt = 0, map = &created; map; cnt++, map = map->next);
do_rhs:
MEM(c_map->rhs = tmpl_init(talloc(c_map, vp_tmpl_t),
TMPL_TYPE_DATA, map->rhs->name, map->rhs->len, T_BARE_WORD));
- if (value_box_copy(c_map->rhs, &c_map->rhs->tmpl_data_value,
+ if (value_box_copy(c_map->rhs, &c_map->rhs->tmpl_value_box_datum,
vp->da->type, &vp->data) < 0) {
REDEBUG("Failed copying attribute value");
error:
talloc_free(c);
return RLM_MODULE_FAIL;
}
- c_map->rhs->tmpl_data_type = vp->da->type;
+ c_map->rhs->tmpl_value_box_type = vp->da->type;
if (vp->da->type == PW_TYPE_STRING) {
c_map->rhs->quote = is_printable(vp->vp_strvalue, vp->vp_length) ?
T_SINGLE_QUOTED_STRING : T_DOUBLE_QUOTED_STRING;
(map->lhs->tmpl_tag != target.tmpl_tag) ||
(map->lhs->tmpl_list != target.tmpl_list)) continue;
- *out = value_box_asprint(request, map->rhs->tmpl_data_type, map->lhs->tmpl_da,
- &map->rhs->tmpl_data_value, '\0');
+ *out = value_box_asprint(request, map->rhs->tmpl_value_box_type, map->lhs->tmpl_da,
+ &map->rhs->tmpl_value_box_datum, '\0');
ret = talloc_array_length(*out) - 1;
break;
}
goto error;
}
- value = value_box_asprint(value_pool, map->rhs->tmpl_data_type,
- map->lhs->tmpl_da, &map->rhs->tmpl_data_value, '\'');
+ value = value_box_asprint(value_pool, map->rhs->tmpl_value_box_type,
+ map->lhs->tmpl_da, &map->rhs->tmpl_value_box_datum, '\'');
if (!value) goto error;
to_store = talloc_asprintf_append_buffer(to_store, "%s %s %s\n", attr,
*/
if (map->lhs->tmpl_da->vendor == 0) switch (map->lhs->tmpl_da->attr) {
case PW_CACHE_CREATED:
- c->created = map->rhs->tmpl_data_value.datum.date;
+ c->created = map->rhs->tmpl_value_box_datum.datum.date;
talloc_free(map);
goto next;
case PW_CACHE_EXPIRES:
- c->expires = map->rhs->tmpl_data_value.datum.date;
+ c->expires = map->rhs->tmpl_value_box_datum.datum.date;
talloc_free(map);
goto next;
break;
case TMPL_TYPE_DATA:
- if (map->rhs->tmpl_data_type != PW_TYPE_STRING) {
+ if (map->rhs->tmpl_value_box_type != PW_TYPE_STRING) {
cf_log_err_cp(cp, "Right side of map must be a string");
return -1;
}
- p = map->rhs->tmpl_data_value.datum.strvalue;
- slen = fr_jpath_parse(cache, &cache->jpath, p, map->rhs->tmpl_data_length);
+ p = map->rhs->tmpl_value_box_datum.datum.strvalue;
+ slen = fr_jpath_parse(cache, &cache->jpath, p, map->rhs->tmpl_value_box_length);
if (slen <= 0) goto error;
break;
key = talloc_bstrndup(pool, key_buf, key_len);
if (!key) return -1;
- switch (map->rhs->tmpl_data_type) {
+ switch (map->rhs->tmpl_value_box_type) {
case PW_TYPE_STRING:
case PW_TYPE_OCTETS:
- out[2] = map->rhs->tmpl_data_value.datum.ptr;
- out_len[2] = map->rhs->tmpl_data_length;
+ out[2] = map->rhs->tmpl_value_box_datum.datum.ptr;
+ out_len[2] = map->rhs->tmpl_value_box_length;
break;
/*
char value[256];
size_t len;
- len = value_box_snprint(value, sizeof(value), map->rhs->tmpl_data_type, map->lhs->tmpl_da,
- &map->rhs->tmpl_data_value, '\0');
+ len = value_box_snprint(value, sizeof(value), map->rhs->tmpl_value_box_type, map->lhs->tmpl_da,
+ &map->rhs->tmpl_value_box_datum, '\0');
new = talloc_bstrndup(pool, value, len);
if (!new) {
talloc_free(key);
if (reply->elements > 1) {
vp_tmpl_t ip_rhs = {
.type = TMPL_TYPE_DATA,
- .tmpl_data_type = PW_TYPE_STRING
+ .tmpl_value_box_type = PW_TYPE_STRING
};
vp_map_t ip_map = {
.lhs = inst->allocated_address_attr,
memset(&tmp, 0, sizeof(tmp));
tmp.datum.integer = ntohl((uint32_t)reply->element[1]->integer);
- tmp.length = sizeof(ip_map.rhs->tmpl_data_value.datum.integer);
+ tmp.length = sizeof(ip_map.rhs->tmpl_value_box_datum.datum.integer);
- if (value_box_cast(NULL, &ip_map.rhs->tmpl_data_value, PW_TYPE_IPV4_ADDR,
+ if (value_box_cast(NULL, &ip_map.rhs->tmpl_value_box_datum, PW_TYPE_IPV4_ADDR,
NULL, PW_TYPE_INTEGER, NULL, &tmp)) {
REDEBUG("Failed converting integer to IPv4 address: %s", fr_strerror());
ret = IPPOOL_RCODE_FAIL;
goto finish;
}
} else {
- ip_map.rhs->tmpl_data_value.datum.integer = ntohl((uint32_t)reply->element[1]->integer);
- ip_map.rhs->tmpl_data_length = sizeof(ip_map.rhs->tmpl_data_value.datum.integer);
- ip_map.rhs->tmpl_data_type = PW_TYPE_INTEGER;
+ ip_map.rhs->tmpl_value_box_datum.datum.integer = ntohl((uint32_t)reply->element[1]->integer);
+ ip_map.rhs->tmpl_value_box_length = sizeof(ip_map.rhs->tmpl_value_box_datum.datum.integer);
+ ip_map.rhs->tmpl_value_box_type = PW_TYPE_INTEGER;
}
}
goto do_ip_map;
case REDIS_REPLY_STRING:
- ip_map.rhs->tmpl_data_value.datum.strvalue = reply->element[1]->str;
- ip_map.rhs->tmpl_data_length = reply->element[1]->len;
- ip_map.rhs->tmpl_data_type = PW_TYPE_STRING;
+ ip_map.rhs->tmpl_value_box_datum.datum.strvalue = reply->element[1]->str;
+ ip_map.rhs->tmpl_value_box_length = reply->element[1]->len;
+ ip_map.rhs->tmpl_value_box_type = PW_TYPE_STRING;
do_ip_map:
if (map_to_request(request, &ip_map, map_to_vp, NULL) < 0) {
vp_tmpl_t range_rhs = {
.name = "",
.type = TMPL_TYPE_DATA,
- .tmpl_data_type = PW_TYPE_STRING,
+ .tmpl_value_box_type = PW_TYPE_STRING,
.quote = T_DOUBLE_QUOTED_STRING
};
vp_map_t range_map = {
.rhs = &range_rhs
};
- range_map.rhs->tmpl_data_value.datum.strvalue = reply->element[2]->str;
- range_map.rhs->tmpl_data_length = reply->element[2]->len;
- range_map.rhs->tmpl_data_type = PW_TYPE_STRING;
+ range_map.rhs->tmpl_value_box_datum.datum.strvalue = reply->element[2]->str;
+ range_map.rhs->tmpl_value_box_length = reply->element[2]->len;
+ range_map.rhs->tmpl_value_box_type = PW_TYPE_STRING;
if (map_to_request(request, &range_map, map_to_vp, NULL) < 0) {
ret = IPPOOL_RCODE_FAIL;
goto finish;
vp_tmpl_t expiry_rhs = {
.name = "",
.type = TMPL_TYPE_DATA,
- .tmpl_data_type = PW_TYPE_STRING,
+ .tmpl_value_box_type = PW_TYPE_STRING,
.quote = T_DOUBLE_QUOTED_STRING
};
vp_map_t expiry_map = {
goto finish;
}
- expiry_map.rhs->tmpl_data_value.datum.integer = reply->element[3]->integer;
- expiry_map.rhs->tmpl_data_length = sizeof(expiry_map.rhs->tmpl_data_value.datum.integer);
- expiry_map.rhs->tmpl_data_type = PW_TYPE_INTEGER;
+ expiry_map.rhs->tmpl_value_box_datum.datum.integer = reply->element[3]->integer;
+ expiry_map.rhs->tmpl_value_box_length = sizeof(expiry_map.rhs->tmpl_value_box_datum.datum.integer);
+ expiry_map.rhs->tmpl_value_box_type = PW_TYPE_INTEGER;
if (map_to_request(request, &expiry_map, map_to_vp, NULL) < 0) {
ret = IPPOOL_RCODE_FAIL;
goto finish;
fr_redis_rcode_t status;
ippool_rcode_t ret = IPPOOL_RCODE_SUCCESS;
- vp_tmpl_t range_rhs = { .name = "", .type = TMPL_TYPE_DATA, .tmpl_data_type = PW_TYPE_STRING, .quote = T_DOUBLE_QUOTED_STRING };
+ vp_tmpl_t range_rhs = { .name = "", .type = TMPL_TYPE_DATA, .tmpl_value_box_type = PW_TYPE_STRING, .quote = T_DOUBLE_QUOTED_STRING };
vp_map_t range_map = { .lhs = inst->range_attr, .op = T_OP_SET, .rhs = &range_rhs };
gettimeofday(&now, NULL);
* Add range ID to request
*/
case REDIS_REPLY_STRING:
- range_map.rhs->tmpl_data_value.datum.strvalue = reply->element[1]->str;
- range_map.rhs->tmpl_data_length = reply->element[1]->len;
- range_map.rhs->tmpl_data_type = PW_TYPE_STRING;
+ range_map.rhs->tmpl_value_box_datum.datum.strvalue = reply->element[1]->str;
+ range_map.rhs->tmpl_value_box_length = reply->element[1]->len;
+ range_map.rhs->tmpl_value_box_type = PW_TYPE_STRING;
if (map_to_request(request, &range_map, map_to_vp, NULL) < 0) {
ret = IPPOOL_RCODE_FAIL;
goto finish;
vp_tmpl_t expiry_rhs = {
.name = "",
.type = TMPL_TYPE_DATA,
- .tmpl_data_type = PW_TYPE_STRING,
+ .tmpl_value_box_type = PW_TYPE_STRING,
.quote = T_DOUBLE_QUOTED_STRING
};
vp_map_t expiry_map = {
.rhs = &expiry_rhs
};
- expiry_map.rhs->tmpl_data_value.datum.integer = expires;
- expiry_map.rhs->tmpl_data_length = sizeof(expiry_map.rhs->tmpl_data_value.datum.integer);
- expiry_map.rhs->tmpl_data_type = PW_TYPE_INTEGER;
+ expiry_map.rhs->tmpl_value_box_datum.datum.integer = expires;
+ expiry_map.rhs->tmpl_value_box_length = sizeof(expiry_map.rhs->tmpl_value_box_datum.datum.integer);
+ expiry_map.rhs->tmpl_value_box_type = PW_TYPE_INTEGER;
if (map_to_request(request, &expiry_map, map_to_vp, NULL) < 0) {
ret = IPPOOL_RCODE_FAIL;
goto finish;
.rhs = &ip_rhs
};
- ip_rhs.tmpl_data_length = strlen(ip_str);
- ip_rhs.tmpl_data_value.datum.strvalue = ip_str;
- ip_rhs.tmpl_data_type = PW_TYPE_STRING;
+ ip_rhs.tmpl_value_box_length = strlen(ip_str);
+ ip_rhs.tmpl_value_box_datum.datum.strvalue = ip_str;
+ ip_rhs.tmpl_value_box_type = PW_TYPE_STRING;
if (map_to_request(request, &ip_map, map_to_vp, NULL) < 0) return RLM_MODULE_FAIL;
}