rc_avpair_gen - Man Page

Decode a raw RADIUS attribute buffer into a VALUE_PAIR list.

Synopsis

#include <radcli/>

VALUE_PAIR * rc_avpair_gen(
    rc_handle const      *rh,
    VALUE_PAIR           *pair,
    unsigned char const  *ptr,
    int                   length,
    uint32_t              vendorspec
);

Description

This is a low-level function retained for ABI compatibility with freeradius-client and radiusclient-ng. Application code should not call it directly; build requests with rc_avpair_add() and send them with rc_auth() or rc_acct(), which handle wire encoding and decoding internally.

Decodes the attribute/value region of a received RADIUS packet (the bytes that follow the 20-byte fixed header) into a linked list of VALUE_PAIR structures. Unknown attributes are logged and skipped; they are not a hard error.

Parameters

rh

a handle to parsed configuration (used for dictionary lookups).

pair

optional existing VALUE_PAIR list to append decoded attributes to; pass NULL to start a fresh list.

ptr

pointer to the start of the attribute data region.

length

number of bytes in the attribute region.

vendorspec

vendor PEN when decoding a vendor-specific sub-attribute block; pass 0 for top-level packet attributes.

Return Value

head of the (possibly extended) VALUE_PAIR list, or NULL on a hard decode error (malformed length field, allocation failure).

See Also

rc_aaa(3), rc_aaa_ctx(3), rc_aaa_ctx_free(3), rc_aaa_ctx_get_secret(3), rc_aaa_ctx_get_vector(3), rc_aaa_ctx_server(3), rc_acct(3), rc_acct_async(3), rc_acct_proxy(3), rc_auth(3), rc_auth_proxy(3), rc_avpair_add(3), rc_avpair_assign(3), rc_avpair_copy(3), rc_avpair_free(3), rc_avpair_get(3), rc_avpair_get_attr(3), rc_avpair_get_in6(3), rc_avpair_get_raw(3), rc_avpair_get_uint32(3), rc_avpair_insert(3), rc_avpair_log(3), rc_avpair_new(3), rc_avpair_next(3), rc_avpair_parse(3), rc_avpair_remove(3), rc_avpair_tostr(3), rc_buildreq(3), rc_check(3), rc_dict_addattr(3), rc_dict_addval(3), rc_dict_addvend(3), rc_dict_findattr(3), rc_dict_findval(3), rc_dict_findvend(3), rc_dict_getattr(3), rc_dict_getval(3), rc_dict_getvend(3), rc_send_server(3)

Info

2026-09-03 radcli Radius client library