rc_acct_async(3)

πŸ“¦ version 2.0.1, in arch rolling

πŸ’… rc_acct_async(3) πŸ’…

okay bestie, welcome to the rc_acct_async page from the radcli Radius client library. yes, that radcli. pull up a chair, this one's actually kinda iconic.


✨ NAME ✨

rc_acct_async β€” drops an accounting request on every single configured accounting server and then just... doesn't wait for a reply. fire and forget, no cap. πŸ”₯


🌸 SYNOPSIS 🌸

#include <radcli/>

int rc_acct_async(
    rc_handle   *rh,
    uint32_t     nas_port,
    VALUE_PAIR  *send
);

πŸ¦‹ DESCRIPTION πŸ¦‹

so. this function picks which server list to use the exact same way rc_acct() does β€” that's acctserver, or authserver if you're under TLS/DTLS. same energy, same rules. 🫢

but here's where it gets different, and honestly it's the whole point: rc_acct() and rc_aaa() are out here being all picky β€” they stop at the first server that replies, and only fail over to the next one after a timeout. very "let me wait and see" of them. rc_acct_async does not do that. it sends to every configured server unconditionally, because there is literally no reply to judge success or failure by. no vibe check possible. πŸ’€

it's for best-effort notifications, bestie β€” like an Accounting-Stop you send while your app is shutting down and you absolutely cannot afford to block. you're leaving the party, you're not waiting for the host to say goodbye. πŸŽ€


🎯 PARAMETERS 🎯

  • rh β€” a handle to your parsed configuration. the whole vibe, basically.
  • nas_port β€” the physical NAS port number to include. and yeah, it may be zero, no judgment. πŸ™ˆ
  • send β€” the VALUE_PAIR list of attributes you're sending. heads up: NAS-Port and Acct-Delay-Time get filled in for you, same as with rc_acct(). you don't gotta do it yourself, king. πŸ‘‘

πŸ’– RETURN VALUE πŸ’–

  • OK_RC (0) β€” the packet got handed off to the socket layer for at least one server. slay. ✨
  • ERROR_RC β€” either no accounting servers are configured at all 😭, or the send failed for every single one of them. rough.

πŸ‘‘ SEE ALSO πŸ‘‘

the whole friend group, fr fr β€” go say hi:

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_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_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)


okay that's the page!! πŸ’œ this beauty is from the radcli crew and it's dated 2026-10-10 β€” go send some accounting packets into the void, bestie, they're not gonna reply anyway πŸŒˆβ­πŸ’…

πŸ“¦ where this page comes from