---
name: "rc_acct_async"
section: "3"
platform: "linux"
package: "radcli"
version: "2.0.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rc_acct_async"
---

# rc\_acct\_async(3)

Sends an accounting request to every configured accounting server without waiting for a reply.

## NAME

rc\_acct\_async - Sends an accounting request to every configured accounting server without waiting for a reply.

## SYNOPSIS

```
#include <radcli/>

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

## DESCRIPTION

Selects the server list the same way rc\_acct() does (acctserver, or authserver under TLS/DTLS). Unlike rc\_acct()/rc\_aaa(), which stop at the first server that replies and fail over to the next only after a timeout, this sends to every configured server unconditionally, since there is no reply to judge success or failure by. Intended for best-effort notifications such as an Accounting-Stop sent while an application is shutting down and cannot afford to block.

## PARAMETERS

- **rh**

  a handle to parsed configuration.

- **nas\_port**

  the physical NAS port number to include (may be zero).

- **send**

  VALUE\_PAIR list of attributes to send; NAS-Port and Acct-Delay-Time are filled in as with rc\_acct().

## RETURN VALUE

OK\_RC (0) if the packet was handed to the socket layer for at least one server, ERROR\_RC if no accounting servers are configured or the send failed for all of them.

## SEE ALSO

[*rc\_aaa*(3)](/rc_aaa/3.md), [*rc\_aaa\_ctx*(3)](/rc_aaa_ctx/3.md), [*rc\_aaa\_ctx\_free*(3)](/rc_aaa_ctx_free/3.md), [*rc\_aaa\_ctx\_get\_secret*(3)](/rc_aaa_ctx_get_secret/3.md), [*rc\_aaa\_ctx\_get\_vector*(3)](/rc_aaa_ctx_get_vector/3.md), [*rc\_aaa\_ctx\_server*(3)](/rc_aaa_ctx_server/3.md), [*rc\_acct*(3)](/rc_acct/3.md), [*rc\_acct\_proxy*(3)](/rc_acct_proxy/3.md), [*rc\_auth*(3)](/rc_auth/3.md), [*rc\_auth\_proxy*(3)](/rc_auth_proxy/3.md), [*rc\_avpair\_add*(3)](/rc_avpair_add/3.md), [*rc\_avpair\_assign*(3)](/rc_avpair_assign/3.md), [*rc\_avpair\_copy*(3)](/rc_avpair_copy/3.md), [*rc\_avpair\_free*(3)](/rc_avpair_free/3.md), [*rc\_avpair\_gen*(3)](/rc_avpair_gen/3.md), [*rc\_avpair\_get*(3)](/rc_avpair_get/3.md), [*rc\_avpair\_get\_attr*(3)](/rc_avpair_get_attr/3.md), [*rc\_avpair\_get\_in6*(3)](/rc_avpair_get_in6/3.md), [*rc\_avpair\_get\_raw*(3)](/rc_avpair_get_raw/3.md), [*rc\_avpair\_get\_uint32*(3)](/rc_avpair_get_uint32/3.md), [*rc\_avpair\_insert*(3)](/rc_avpair_insert/3.md), [*rc\_avpair\_log*(3)](/rc_avpair_log/3.md), [*rc\_avpair\_new*(3)](/rc_avpair_new/3.md), [*rc\_avpair\_next*(3)](/rc_avpair_next/3.md), [*rc\_avpair\_parse*(3)](/rc_avpair_parse/3.md), [*rc\_avpair\_remove*(3)](/rc_avpair_remove/3.md), [*rc\_avpair\_tostr*(3)](/rc_avpair_tostr/3.md), [*rc\_buildreq*(3)](/rc_buildreq/3.md), [*rc\_check*(3)](/rc_check/3.md), [*rc\_dict\_addattr*(3)](/rc_dict_addattr/3.md), [*rc\_dict\_addval*(3)](/rc_dict_addval/3.md), [*rc\_dict\_addvend*(3)](/rc_dict_addvend/3.md), [*rc\_dict\_findattr*(3)](/rc_dict_findattr/3.md), [*rc\_dict\_findval*(3)](/rc_dict_findval/3.md), [*rc\_dict\_findvend*(3)](/rc_dict_findvend/3.md), [*rc\_dict\_getattr*(3)](/rc_dict_getattr/3.md), [*rc\_dict\_getval*(3)](/rc_dict_getval/3.md), [*rc\_dict\_getvend*(3)](/rc_dict_getvend/3.md), [*rc\_send\_server*(3)](/rc_send_server/3.md)
