rc_avpair_next(3)

πŸ“¦
version 1.5.2 Β· 4 versions
, in alpine 3.24, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– rc_avpair_next πŸ’–

okay bestie, so we're in the radcli radius client library manual, page rc_avpair_next(3), and honestly? this one is a little cutie. it walks the linked list. that's it. that's the whole job. let's go ✨


🌸 NAME 🌸

rc_avpair_next β€” iterates through the attribute-value pairs

(no cap, the original description line here was literally just blank, so we're keeping the vibe honest πŸ™ˆ)


πŸŽ€ SYNOPSIS πŸŽ€

#include <radcli/radcli.h>

VALUE_PAIR * rc_avpair_next(
    VALUE_PAIR  *t
);

✨ DESCRIPTION ✨

so basically, it iterates through the attribute-value pairs. that's the tea 🍡

the attribute-values are organized in a linked-list</>, and this function is literally your girl for walking through them β€” you hand her the first element to start with, and she keeps going from there. one at a time. no skipping. periodt πŸ’…


πŸ¦‹ PARAMETERS πŸ¦‹

  • t β€” the current pair. like, where you're at right now. your current main character 🫢

πŸ‘‘ STRUCTURES πŸ‘‘

⚠️ okay bestie, listen β€” avoid using this structure directly. use the rc_avpair_get_ functions instead. i'm serious. the struct is giving "don't touch, i'm fragile" πŸ’€
struct rc_value_pair {
  char                   name[RC_NAME_LENGTH+1];      // attribute name if known.
  uint64_t               attribute; // attribute numeric value of type rc_attr_id including vendor; use VENDOR() and ATTRID() to separate.
  rc_attr_type           type;      // attribute type.
  uint32_t               lvalue;    // attribute value if type is PW_TYPE_INTEGER, PW_TYPE_DATE or PW_TYPE_IPADDR.
  char                   strvalue[AUTH_STRING_LEN+1];  // contains attribute value in other cases.
  struct rc_value_pair  *next;
  char                   pad[32];       // unused pad
};

(the pad[32]? unused. iconic of it to just sit there. slay ✨)


🌈 RETURN VALUE 🌈

a pointer to the next pair, or NULL when you're finished. and when it hands you NULL? that's the vibe check saying "we're done here, babe" πŸ’–


πŸ’œ SEE ALSO πŸ’œ

radcli.h(3), 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_proxy(3), rc_add_config(3), rc_apply_config(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_gen(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_check_tls(3), rc_conf_int(3), rc_conf_srv(3), rc_conf_str(3), rc_config_free(3), rc_config_init(3), rc_destroy(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_free(3), rc_dict_getattr(3), rc_dict_getval(3), rc_dict_getvend(3), rc_find_server_addr(3), rc_get_socket_type(3), rc_get_srcaddr(3), rc_getport(3), rc_mksid(3), rc_new(3), rc_openlog(3), rc_own_hostname(3), rc_read_config(3), rc_read_dictionary(3), rc_read_dictionary_from_buffer(3), rc_send_server(3), rc_setdebug(3), rc_test_config(3), rc_tls_fd(3)


and that's the whole page bestie!! πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

this little love letter to linked lists is brought to you by radcli, dated 2023-01-29, and it lives at page rc_avpair_next(3) if you ever need to find her again. go forth and iterate, queen πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from