radcli_request_new - Man Page

Create a request to send.

Synopsis

#include <radcli/>

radcli_request * radcli_request_new(
    radcli_ctx             *ctx,
    radcli_code             code,
    const radcli_avp_list  *send
);

Description

Reads the destination server, its shared secret, and the timeout/retry counts from ctx's configuration  the same "authserver"/"acctserver", "radius_timeout", and "radius_retries" settings rc_auth()/rc_acct() (radcli.h) use. Unlike rc_auth()/rc_acct(), which fail over across every configured entry, this uses only the first: the new API carries one server per context, with redundancy delegated to DNS (several A/AAAA records for one name, tried in order within the request's timeout by radcli_transport_exchange()) rather than a configured list of distinct servers. A warning is logged, not an error, if more than one entry is configured, so a caller migrating one entry point at a time from the legacy API isn't broken by the leftover entries.

Parameters

ctx

a context with configuration loaded.

code

RADCLI_CODE_ACCESS_REQUEST or RADCLI_CODE_ACCOUNTING_REQUEST.

send

the attributes to send; copied in  send may be freed or reused by the caller immediately after this call returns.

Return Value

the new request, or NULL on allocation failure, an invalid code, or if ctx has no server configured for that code's type.

See Also

radcli_aaa(3), radcli_request_attrs(3), radcli_request_code(3), radcli_request_done(3), radcli_request_free(3), radcli_request_perform(3), radcli_request_server(3)

Info

2026-09-03 radcli Radius client library