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)