ssize_t len;
uint32_t pen;
fr_dict_attr_t const *da;
+ uint8_t const *end;
FR_PROTO_HEX_DUMP(data, data_len, "decode_vsa");
return decode_value(ctx, cursor, parent, data, data_len);
}
+ end = data + data_len;
+
+next:
memcpy(&pen, data, sizeof(pen));
pen = htonl(pen);
len = decode_tlv(ctx, cursor, da, data + 5, data[4]);
if (len <= 0) return len;
+ data += 5 + len;
+ if (data < end) goto next;
+
/*
* Tell the caller we read all of it, even if we didn't.
*/
--- /dev/null
+#
+# Test vectors for Vendor-Specific DHCP attributes
+#
+proto dhcpv4
+proto-dictionary dhcpv4
+
+encode-pair Cisco-Indirect-Image-Filename = "aa.txt"
+match 7d 0d 00 00 00 09 08 05 06 61 61 2e 74 78 74
+
+decode-pair -
+match Cisco-Indirect-Image-Filename = "aa.txt"
+
+decode-pair 7d 1a 00 00 00 09 08 05 06 61 61 2e 74 78 74 00 00 00 09 08 05 06 62 62 2e 74 78 74
+match Cisco-Indirect-Image-Filename = "aa.txt", Cisco-Indirect-Image-Filename = "bb.txt"
+
+count
+match 8