radcli_dae_request_free3
Release a request.
Usage
#include <radcli/>
void radcli_dae_request_free(
radcli_dae_request *req
);
Overview
Parameters
req-
a request passed to a radcli_dae_handler, or from radcli_dae_process(); NULL is accepted and ignored. Replying is optional before freeing: an unanswered request simply gets no reply.
See also
radcli_ctx_dispatch(3)
Read what is ready on ctx's descriptor(s), validate it, and invoke the registered handler for anything that passes see radcli_dae_set_handler(). Also: drains any in-flight RADCLI_REQUEST_SENDONLY exchange's reply and services its retransmit/ timeout deadline (net2.md's REQ-NET2-SEND-013/016), and, once due, sends the RFC 5997 watchdog on an established RadSec session (watchdog.md's REQ-WATCHDOG-NET-001) all unconditionally, every call, regardless of whether an active radcli_dae exists at all: this is now the single entry point radcli_ctx_get_poll() drives, for everything ctx owns, not a DAE-only call.
radcli_ctx_get_poll(3)
Report what to wait for on ctx's behalf, for the caller's own event loop radcli never calls poll()/select()/epoll_wait() itself.
radcli_dae_free(3)
Release a listener, closing its socket if radcli_dae_start() opened one.
radcli_dae_new(3)
Validate dae-* configuration and build a dynamic-authorization listener. Opens no socket see radcli_dae_start().
radcli_dae_process(3)
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.
radcli_dae_reply(3)
Answer a request with an ACK or NAK, selecting 41/42 or 44/45 from the request's own code, mirroring its Proxy-State attributes, and computing the Response Authenticator over the request's Authenticator.
radcli_dae_reply_error(3)
Answer a request with a NAK carrying the given Error-Cause.
radcli_dae_reply_to_buffer(3)
Produce a reply as bytes instead of sending it the L0 counterpart of radcli_dae_reply()/radcli_dae_reply_error(), for a request that came from radcli_dae_process().
radcli_dae_req_attrs(3)
Return the request's decoded attributes.
radcli_dae_req_code(3)
Return the received packet's RADIUS code.
radcli_dae_req_framed_ip(3)
Return the request's Framed-IP-Address or Framed-IPv6-Address.
radcli_dae_req_nas_port(3)
Return the request's NAS-Port.
radcli_dae_req_session_id(3)
Return the request's Acct-Session-Id, if it carried one.
radcli_dae_req_user_name(3)
Return the request's User-Name, if it carried one.
radcli_dae_set_handler(3)
Register the callback radcli_ctx_dispatch() invokes for each validated request. May be called before or after radcli_dae_start().
radcli_dae_start(3)
Start receiving: binds the socket described by dae-listen.
Referred to by
radcli2.h(3)
radcli_dae_new(3)
Validate dae-* configuration and build a dynamic-authorization listener. Opens no socket see radcli_dae_start().
radcli_dae_free(3)
Release a listener, closing its socket if radcli_dae_start() opened one.
radcli_dae_reply(3)
Answer a request with an ACK or NAK, selecting 41/42 or 44/45 from the request's own code, mirroring its Proxy-State attributes, and computing the Response Authenticator over the request's Authenticator.
radcli_dae_start(3)
Start receiving: binds the socket described by dae-listen.
radcli_dae_process(3)
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.
radcli_ctx_dispatch(3)
Read what is ready on ctx's descriptor(s), validate it, and invoke the registered handler for anything that passes see radcli_dae_set_handler(). Also: drains any in-flight RADCLI_REQUEST_SENDONLY exchange's reply and services its retransmit/ timeout deadline (net2.md's REQ-NET2-SEND-013/016), and, once due, sends the RFC 5997 watchdog on an established RadSec session (watchdog.md's REQ-WATCHDOG-NET-001) all unconditionally, every call, regardless of whether an active radcli_dae exists at all: this is now the single entry point radcli_ctx_get_poll() drives, for everything ctx owns, not a DAE-only call.
radcli_ctx_get_poll(3)
Report what to wait for on ctx's behalf, for the caller's own event loop radcli never calls poll()/select()/epoll_wait() itself.
radcli_dae_req_code(3)
Return the received packet's RADIUS code.
radcli_dae_req_attrs(3)
Return the request's decoded attributes.
radcli_dae_reply_error(3)
Answer a request with a NAK carrying the given Error-Cause.
radcli_dae_set_handler(3)
Register the callback radcli_ctx_dispatch() invokes for each validated request. May be called before or after radcli_dae_start().
radcli_dae_req_nas_port(3)
Return the request's NAS-Port.
radcli_dae_req_framed_ip(3)
Return the request's Framed-IP-Address or Framed-IPv6-Address.
radcli_dae_req_user_name(3)
Return the request's User-Name, if it carried one.
radcli_dae_req_session_id(3)
Return the request's Acct-Session-Id, if it carried one.
radcli_dae_reply_to_buffer(3)
Produce a reply as bytes instead of sending it the L0 counterpart of radcli_dae_reply()/radcli_dae_reply_error(), for a request that came from radcli_dae_process().