radcli2.h(3)
Okay bestie, welcome to radcli2.h(3) from the Radius client library β yes, that's the manual page title, and it's lowkey iconic. This is the header that brings the whole function roster, and I'm gonna lay it out without skipping a single thing. π
π NAME π
radcli2.h β that's it, that's the name. The manual page is radcli2.h(3), and it belongs to the Radius client library. No cap.
β¨ SYNOPSIS β¨
To pull this header in, you literally just do:
#include <radcli/radcli2.h>
π¦ DESCRIPTION π¦
Okay so the description here is the full squad of declarations living in the header. I'm not gatekeeping, not summarising, not dropping a single one β every signature is below exactly as it appears. Copy them with care, bestie. π
int radcli_aaa(radcli_ctx *, radcli_code, const radcli_avp_list *, radcli_code *, radcli_avp_list **);
const char *radcli_attr_def_name(const radcli_attr_def *);
int radcli_attr_def_oid(const radcli_attr_def *, char *, size_t);
radcli_attr_type radcli_attr_def_type(const radcli_attr_def *);
int radcli_avp_add_bytes(radcli_avp_list *, const radcli_attr_def *, const void *, size_t);
int radcli_avp_add_bytes_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, const void *, size_t);
int radcli_avp_add_gigawords64(radcli_ctx *, radcli_avp_list *, const radcli_attr_def *, uint64_t);
int radcli_avp_add_gigawords64_by_num(radcli_ctx *, radcli_avp_list *, uint32_t, uint32_t, uint64_t);
int radcli_avp_add_ip4(radcli_avp_list *, const radcli_attr_def *, struct in_addr);
int radcli_avp_add_ip4_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, struct in_addr);
int radcli_avp_add_ip4prefix(radcli_avp_list *, const radcli_attr_def *, struct in_addr, unsigned);
int radcli_avp_add_ip4prefix_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, struct in_addr, unsigned);
int radcli_avp_add_ip6(radcli_avp_list *, const radcli_attr_def *, const struct in6_addr *, unsigned);
int radcli_avp_add_ip6_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, const struct in6_addr *, unsigned);
int radcli_avp_add_str(radcli_avp_list *, const radcli_attr_def *, const char *);
int radcli_avp_add_str_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, const char *);
int radcli_avp_add_uint32(radcli_avp_list *, const radcli_attr_def *, uint32_t);
int radcli_avp_add_uint32_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, uint32_t);
int radcli_avp_add_uint64(radcli_avp_list *, const radcli_attr_def *, uint64_t);
int radcli_avp_add_uint64_by_num(radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, uint64_t);
int radcli_avp_add_username(radcli_avp_list *, const radcli_ctx *, const char *, const char *);
int radcli_avp_concat_str(char *, size_t, const radcli_avp_list *, const radcli_attr_def *, const char *);
int radcli_avp_concat_str_by_num(char *, size_t, const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, const char *);
const radcli_attr_def*radcli_avp_def(const radcli_avp *);
const radcli_avp*radcli_avp_get(const radcli_avp_list *, const radcli_attr_def *, unsigned);
const radcli_avp*radcli_avp_get_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, unsigned);
int radcli_avp_get_bytes(const radcli_avp *, const void **, size_t *);
int radcli_avp_get_bytes_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, const void **, size_t *);
const char *radcli_avp_get_cstr(const radcli_avp *);
const char *radcli_avp_get_cstr_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t);
int radcli_avp_get_gigawords64(const radcli_ctx *, const radcli_avp_list *, const radcli_attr_def *, uint64_t *);
int radcli_avp_get_gigawords64_by_num(const radcli_ctx *, const radcli_avp_list *, uint32_t, uint32_t, uint64_t *);
int radcli_avp_get_ip4prefix(const radcli_avp *, struct in_addr *, unsigned *);
int radcli_avp_get_ip4prefix_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, struct in_addr *, unsigned *);
int radcli_avp_get_ip6(const radcli_avp *, struct in6_addr *, unsigned *);
int radcli_avp_get_ip6_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, struct in6_addr *, unsigned *);
int radcli_avp_get_uint32(const radcli_avp *, uint32_t *);
int radcli_avp_get_uint32_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, uint32_t *);
int radcli_avp_get_uint64(const radcli_avp *, uint64_t *);
int radcli_avp_get_uint64_by_num(const radcli_avp_list *, const radcli_ctx *, uint32_t, uint32_t, uint64_t *);
const radcli_avp*radcli_avp_iter_next(radcli_avp_iter *);
int radcli_avp_list_error(const radcli_avp_list *);
void radcli_avp_list_free(radcli_avp_list *);
radcli_avp_iter radcli_avp_list_iter(const radcli_avp_list *);
radcli_avp_list*radcli_avp_list_new(void);
int radcli_ctx_apply(radcli_ctx *);
int radcli_ctx_dispatch(radcli_ctx *);
void radcli_ctx_free(radcli_ctx *);
int radcli_ctx_get_opt_int(const radcli_ctx *, radcli_opt_id, long *);
const char *radcli_ctx_get_opt_str(const radcli_ctx *, radcli_opt_id);
int radcli_ctx_get_poll(radcli_ctx *, struct pollfd *, size_t, size_t *, int *);
radcli_ctx *radcli_ctx_new(unsigned);
radcli_ctx *radcli_ctx_read_config(const char *, unsigned);
int radcli_ctx_read_dictionary(radcli_ctx *, const char *);
int radcli_ctx_read_dictionary_from_buffer(radcli_ctx *, const char *, size_t);
int radcli_ctx_set_opt_int(radcli_ctx *, radcli_opt_id, long);
int radcli_ctx_set_opt_str(radcli_ctx *, radcli_opt_id, const char *);
int radcli_ctx_set_secret(radcli_ctx *, unsigned, const char *);
int radcli_ctx_set_tls_psk(radcli_ctx *, const void *, size_t, const uint8_t *, size_t);
void radcli_dae_free(radcli_dae *);
radcli_dae *radcli_dae_new(radcli_ctx *, unsigned);
int radcli_dae_process(radcli_dae *, const void *, size_t, const struct sockaddr *, socklen_t, radcli_dae_request **);
int radcli_dae_reply(radcli_dae_request *, int);
int radcli_dae_reply_error(radcli_dae_request *, uint32_t);
int radcli_dae_reply_to_buffer(radcli_dae_request *, int, uint32_t, void *, size_t *);
const radcli_avp_list*radcli_dae_req_attrs(const radcli_dae_request *);
radcli_code radcli_dae_req_code(const radcli_dae_request *);
int radcli_dae_req_framed_ip(const radcli_dae_request *, struct sockaddr_storage *);
int radcli_dae_req_nas_port(const radcli_dae_request *, uint32_t *);
const char *radcli_dae_req_session_id(const radcli_dae_request *);
const char *radcli_dae_req_user_name(const radcli_dae_request *);
void radcli_dae_request_free(radcli_dae_request *);
void radcli_dae_set_handler(radcli_dae *, radcli_dae_handler, void *);
int radcli_dae_start(radcli_dae *);
const radcli_attr_def*radcli_dict_lookup(const radcli_ctx *, const char *);
const radcli_attr_def*radcli_dict_lookup_num(const radcli_ctx *, uint32_t, uint32_t);
const radcli_attr_def*radcli_dict_lookup_oid(const radcli_ctx *, const char *);
int radcli_dict_lookup_value(const radcli_ctx *, const radcli_attr_def *, const char *, uint32_t *);
const radcli_avp_list*radcli_request_attrs(const radcli_request *);
radcli_code radcli_request_code(const radcli_request *);
int radcli_request_done(radcli_request *);
void radcli_request_free(radcli_request *);
radcli_request*radcli_request_new(radcli_ctx *, radcli_code, const radcli_avp_list *);
int radcli_request_perform(radcli_request *, unsigned);
const char *radcli_request_server(const radcli_request *);
π SEE ALSO π
The whole extended fam is in the group chat too:
radcli_aaa(3)radcli_attr_def_name(3)radcli_attr_def_oid(3)radcli_attr_def_type(3)radcli_avp_add_bytes(3)radcli_avp_add_bytes_by_num(3)radcli_avp_add_gigawords64(3)radcli_avp_add_gigawords64_by_num(3)radcli_avp_add_ip4(3)radcli_avp_add_ip4_by_num(3)radcli_avp_add_ip4prefix(3)radcli_avp_add_ip4prefix_by_num(3)radcli_avp_add_ip6(3)radcli_avp_add_ip6_by_num(3)radcli_avp_add_str(3)radcli_avp_add_str_by_num(3)radcli_avp_add_uint32(3)radcli_avp_add_uint32_by_num(3)radcli_avp_add_uint64(3)radcli_avp_add_uint64_by_num(3)radcli_avp_add_username(3)radcli_avp_concat_str(3)radcli_avp_concat_str_by_num(3)radcli_avp_def(3)radcli_avp_get(3)radcli_avp_get_by_num(3)radcli_avp_get_bytes(3)radcli_avp_get_bytes_by_num(3)radcli_avp_get_cstr(3)radcli_avp_get_cstr_by_num(3)radcli_avp_get_gigawords64(3)radcli_avp_get_gigawords64_by_num(3)radcli_avp_get_ip4prefix(3)radcli_avp_get_ip4prefix_by_num(3)radcli_avp_get_ip6(3)radcli_avp_get_ip6_by_num(3)radcli_avp_get_uint32(3)radcli_avp_get_uint32_by_num(3)radcli_avp_get_uint64(3)radcli_avp_get_uint64_by_num(3)radcli_avp_iter_next(3)radcli_avp_list_error(3)radcli_avp_list_free(3)radcli_avp_list_iter(3)radcli_avp_list_new(3)radcli_ctx_apply(3)radcli_ctx_dispatch(3)radcli_ctx_free(3)radcli_ctx_get_opt_int(3)radcli_ctx_get_opt_str(3)radcli_ctx_get_poll(3)radcli_ctx_new(3)radcli_ctx_read_config(3)radcli_ctx_read_dictionary(3)radcli_ctx_read_dictionary_from_buffer(3)radcli_ctx_set_opt_int(3)radcli_ctx_set_opt_str(3)radcli_ctx_set_secret(3)radcli_ctx_set_tls_psk(3)radcli_dae_free(3)radcli_dae_new(3)radcli_dae_process(3)radcli_dae_reply(3)radcli_dae_reply_error(3)radcli_dae_reply_to_buffer(3)radcli_dae_req_attrs(3)radcli_dae_req_code(3)radcli_dae_req_framed_ip(3)radcli_dae_req_nas_port(3)radcli_dae_req_session_id(3)radcli_dae_req_user_name(3)radcli_dae_request_free(3)radcli_dae_set_handler(3)radcli_dae_start(3)radcli_dict_lookup(3)radcli_dict_lookup_num(3)radcli_dict_lookup_oid(3)radcli_dict_lookup_value(3)radcli_request_attrs(3)radcli_request_code(3)radcli_request_done(3)radcli_request_free(3)radcli_request_new(3)radcli_request_perform(3)radcli_request_server(3)
Byeee π«Ά β this page's source/version line says radcli, the date is 2026-10-10, and it's the radcli2.h(3) manual. Mwah π
π¦ 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