radcli_avp...ytes_by_num(3)
π radcli_avp_add_bytes_by_num β NAME
okay so bestie, picture this: you're out here with a legacy numeric attribute ID (yes, the old-school kind, no judgement) and you just want to yeet some raw bytes into a list. That's literally the whole job of radcli_avp_add_bytes_by_num β look up an attribute by legacy numeric ID and append its bytes. iconic behaviour, no cap. β¨
π SYNOPSIS
#include <radcli/>
int radcli_avp_add_bytes_by_num(
radcli_avp_list *list,
const radcli_ctx *ctx,
uint32_t attrid,
uint32_t vendor,
const void *value,
size_t len
);
π¦ DESCRIPTION
(this section is being its own main character β the details live in the parameters below π«Ά)
πΈ PARAMETERS
listβ the destination list. it's giving "where the bytes are gonna live". πctxβ a context with a dictionary loaded. no dictionary, no lookup, you know how it is.attridβ the attribute ID. that's aPW_*constant, or a vendor type ID whenvendoris non-zero. iykyk.vendorβ the vendor PEN, or0for a standard attribute. zero means "no vendor energy, just vibes". β¨valueβ the bytes to copy in. it may beNULLonly iflenis0. not me letting you skip that condition β it's real, fr fr. πlenβ number of bytes atvalue. count 'em, bestie. π₯
β RETURN VALUE
0 on success. π
-1 on failure β which happens when there's no such attribute, or for whatever reason radcli_avp_add_bytes() gives you. so if you see a -1, that's your plot twist. π
π SEE ALSO
her sisters, all equally iconic π
radcli_avp_add_ip4_by_num(3)radcli_avp_add_ip4prefix_by_num(3)radcli_avp_add_ip6_by_num(3)radcli_avp_add_str_by_num(3)radcli_avp_add_uint32_by_num(3)radcli_avp_add_uint64_by_num(3)
okay that's the whole vibe check π β this is from radcli, dated 2026-10-10, and that's the manual page, periodt. π«Άβ¨πΈ
π¦ where this page comes from
- arch rolling: radcli 2.0.1-1 Β· BSD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms