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

# radcli\_dae\_new(3)

Validate dae-\* configuration and build a dynamic-authorization listener. Opens no socket see radcli\_dae\_start().

## NAME

radcli\_dae\_new - Validate dae-\* configuration and build a dynamic-authorization listener. Opens no socket  see radcli\_dae\_start().

## SYNOPSIS

```
#include <radcli/>

radcli_dae * radcli_dae_new(
    radcli_ctx  *ctx,
    unsigned     flags
);
```

## DESCRIPTION

Fails (returns NULL) unless dae-accept is "yes" or "udp", so that a library upgrade never silently exposes a session-terminating channel in an application that did not opt in. When enabled, also fails unless both dae-server and dae-secret are set, and unless every dae-server entry resolves and carries no network prefix.

At most one radcli\_dae may be active on a given ctx at a time, since radcli\_ctx\_get\_poll()/radcli\_ctx\_dispatch() operate on ctx and need a single descriptor to report.

## PARAMETERS

- **ctx**

  a configured context (rc\_read\_config()/rc\_apply\_config() already called).

- **flags**

  a bitwise OR of radcli\_dae\_flags, or 0 for the common case.

## RETURN VALUE

a new listener, or NULL on invalid configuration or an unknown flags bit.

## SEE ALSO

[*radcli\_ctx\_dispatch*(3)](/radcli_ctx_dispatch/3.md), [*radcli\_ctx\_get\_poll*(3)](/radcli_ctx_get_poll/3.md), [*radcli\_dae\_free*(3)](/radcli_dae_free/3.md), [*radcli\_dae\_process*(3)](/radcli_dae_process/3.md), [*radcli\_dae\_reply*(3)](/radcli_dae_reply/3.md), [*radcli\_dae\_reply\_error*(3)](/radcli_dae_reply_error/3.md), [*radcli\_dae\_reply\_to\_buffer*(3)](/radcli_dae_reply_to_buffer/3.md), [*radcli\_dae\_req\_attrs*(3)](/radcli_dae_req_attrs/3.md), [*radcli\_dae\_req\_code*(3)](/radcli_dae_req_code/3.md), [*radcli\_dae\_req\_framed\_ip*(3)](/radcli_dae_req_framed_ip/3.md), [*radcli\_dae\_req\_nas\_port*(3)](/radcli_dae_req_nas_port/3.md), [*radcli\_dae\_req\_session\_id*(3)](/radcli_dae_req_session_id/3.md), [*radcli\_dae\_req\_user\_name*(3)](/radcli_dae_req_user_name/3.md), [*radcli\_dae\_request\_free*(3)](/radcli_dae_request_free/3.md), [*radcli\_dae\_set\_handler*(3)](/radcli_dae_set_handler/3.md), [*radcli\_dae\_start*(3)](/radcli_dae_start/3.md)
