.\" File automatically generated by doxy2man0.3 .\" Generation date: Thu Sep 3 2026 .TH radcli_dae_process 3 2026-09-03 "radcli" "Radius client library" .SH "NAME" radcli_dae_process \- Validate a caller-supplied packet, without a radcli-owned socket the L0 counterpart of radcli_ctx_dispatch(), running the identical validation pipeline (REQ-DAE-NET-003) on a buffer and source address the caller supplies instead of reading them from radcli_dae_start()'s socket. A request this produces is otherwise indistinguishable from one radcli_ctx_dispatch() would have delivered to a handler. .SH SYNOPSIS .nf .B #include .sp \fBint radcli_dae_process\fP( \fBradcli_dae *\fP\fIdae\fP, \fBconst void *\fP\fIbuf\fP, \fBsize_t \fP\fIlen\fP, \fBconst struct sockaddr *\fP\fIfrom\fP, \fBsocklen_t \fP\fIfromlen\fP, \fBradcli_dae_request **\fP\fIreq\fP ); .fi .SH DESCRIPTION .SH PARAMETERS .TP .B dae a listener from radcli_dae_new() (radcli_dae_start() need never have been called: this function reads no socket). Rejected outright (-1) if dae is following serv-type=tls/dtls (RadSec): that transport trusts the record's origin entirely to the already-verified TLS/DTLS session (REQ-DAE-SEC-015), which this buffer/address pair is not, and has no source-address check of its own to apply to it. .TP .B buf the received packet, header included. .TP .B len buf's length. .TP .B from the packet's source address, for the dae-server authorization check. .TP .B fromlen from's length. Must be at least sizeof(struct sockaddr_in) and at most sizeof(struct sockaddr_storage), and consistent with the family from->sa_family declares (AF_INET or AF_INET6 only, matching what dae-server can authorize) an application relaying from and fromlen from an untrusted producer (e.g. over IPC from a privileged listener) must not assume this function corrects a mismatch; it only rejects one. .TP .B req set to the validated request on success (RADCLI_DAE_NEW or RADCLI_DAE_DUPLICATE), left NULL on failure. .SH RETURN VALUE .PP RADCLI_DAE_NEW or RADCLI_DAE_DUPLICATE on success, -1 if the packet failed validation (discarded silently, exactly as radcli_ctx_dispatch() would), dae is a RadSec listener, or any argument is invalid. .SH SEE ALSO .PP .nh .ad l \fIradcli_ctx_dispatch\fP(3), \fIradcli_ctx_get_poll\fP(3), \fIradcli_dae_free\fP(3), \fIradcli_dae_new\fP(3), \fIradcli_dae_reply\fP(3), \fIradcli_dae_reply_error\fP(3), \fIradcli_dae_reply_to_buffer\fP(3), \fIradcli_dae_req_attrs\fP(3), \fIradcli_dae_req_code\fP(3), \fIradcli_dae_req_framed_ip\fP(3), \fIradcli_dae_req_nas_port\fP(3), \fIradcli_dae_req_session_id\fP(3), \fIradcli_dae_req_user_name\fP(3), \fIradcli_dae_request_free\fP(3), \fIradcli_dae_set_handler\fP(3), \fIradcli_dae_start\fP(3) .ad .hy