case FR_TYPE_UINT32:
case FR_TYPE_UINT64:
case FR_TYPE_INT32:
- len = fr_value_box_to_network(NULL, out, outlen, &vp->data);
+ len = fr_value_box_to_network(NULL, out, outlen, &vp->data, vp->da);
if (len < 0) return len;
break;
/*
* Determine the nested type and call the appropriate encoder
*/
- len = fr_value_box_to_network(NULL, p, outlen, &vp->data);
+ len = fr_value_box_to_network(NULL, p, outlen, &vp->data, vp->da);
if (len <= 0) return -1;
if (child->flags.extra) {
* @param[in] dst_len The length of the output buffer, or maximum value fragment
* size.
* @param[in] value to encode.
+ * @param[in] da attribute definition for extra "flags" fields.
* @return
* - 0 no bytes were written, see need value to determine if it was because
* the fr_value_box_t was #FR_TYPE_OCTETS/#FR_TYPE_STRING and was
* - >0 the number of bytes written to out.
* - <0 on error.
*/
-ssize_t fr_value_box_to_network(size_t *need, uint8_t *dst, size_t dst_len, fr_value_box_t const *value)
+ssize_t fr_value_box_to_network(size_t *need, uint8_t *dst, size_t dst_len, fr_value_box_t const *value,
+ UNUSED fr_dict_attr_t const *da)
{
size_t min, max;
uint8_t *p = dst;
size_t fr_value_box_network_length(fr_value_box_t *value);
-ssize_t fr_value_box_to_network(size_t *need, uint8_t *out, size_t outlen, fr_value_box_t const *value);
+ssize_t fr_value_box_to_network(size_t *need, uint8_t *out, size_t outlen, fr_value_box_t const *value,
+ fr_dict_attr_t const *da) CC_HINT(nonnull(1,2,4));
ssize_t fr_value_box_from_network(TALLOC_CTX *ctx,
fr_value_box_t *dst, fr_type_t type, fr_dict_attr_t const *enumv,
case FR_TYPE_ETHERNET:
case FR_TYPE_STRING:
case FR_TYPE_OCTETS:
- len = fr_value_box_to_network(&need, p, outlen, &vp->data);
+ len = fr_value_box_to_network(&need, p, outlen, &vp->data, vp->da);
if (len < 0) return -2;
if (need > 0) return -1;
p += len;
case FR_TYPE_IFID:
case FR_TYPE_ETHERNET:
CHECK_FREESPACE(outlen, fr_dhcpv6_option_len(vp));
- slen = fr_value_box_to_network(NULL, p, end - p, &vp->data);
+ slen = fr_value_box_to_network(NULL, p, end - p, &vp->data, vp->da);
if (slen < 0) return PAIR_ENCODE_ERROR;
p += slen;
break;
case FR_TYPE_INT32:
case FR_TYPE_INT64:
case FR_TYPE_DATE:
- len = fr_value_box_to_network(NULL, buffer, sizeof(buffer), &vp->data);
+ len = fr_value_box_to_network(NULL, buffer, sizeof(buffer), &vp->data, vp->da);
if (len < 0) return -1;
data = buffer;
break;