26RCSIDH(control_h,
"$Id: 80ca73676a48929faf5e63b11028c0bae052dd6b $")
28#include <freeradius-devel/util/time.h>
29#include <freeradius-devel/util/event.h>
75#define FR_CONTROL_MAX_MESSAGES (1024)
76#define FR_CONTROL_MAX_SIZE (48)
83 void const *
data,
size_t data_size) CC_HINT(
nonnull);
fr_control_eventset_t
Who defines control plane events.
@ FR_CONTROL_EVENTSET_MAX
@ FR_CONTROL_EVENTSET_WORKER
Events a worker defines.
@ FR_CONTROL_EVENTSET_COORD
Events the coordinator defines.
@ FR_CONTROL_EVENTSET_CHANNEL
Events channels define.
@ FR_CONTROL_EVENTSET_NETWORK
Events the network defines.
bool fr_control_sleeping(fr_control_t *c)
Record that the reader of this control plane is about to block.
void fr_control_awake(fr_control_t *c)
Record that the reader of this control plane is running again.
void(* fr_control_socket_callback_t)(int sock, fr_time_t now, void *uctx)
A callback for a message which carries a socket.
bool fr_control_is_sleeping(fr_control_t *c)
Check whether the reader of this control plane is blocked.
int fr_control_open(fr_control_t *c)
Open the control-plane signalling path.
fr_control_t * fr_control_create(TALLOC_CTX *ctx, fr_event_list_t *el, uint16_t slots, uint16_t max_size)
Create a control-plane signaling path.
int fr_control_callback_add(fr_control_t *c, fr_control_eventset_t es, uint16_t ev, fr_control_callback_t callback, void *uctx))
Register a callback for a message.
void(* fr_control_callback_t)(void const *data, size_t data_size, fr_time_t now, void *uctx)
int fr_control_socket_callback_delete(fr_control_t *c, fr_control_eventset_t es, uint16_t ev)
Delete a callback for a message which carries a socket.
int fr_control_socket_send(fr_control_t *c, fr_control_eventset_t es, uint16_t ev, int sock)
Send a control-plane message carrying a socket.
int fr_control_callback_delete(fr_control_t *c, fr_control_eventset_t es, uint16_t ev)
Delete a callback for a message.
int fr_control_message_send(fr_control_t *c, fr_control_eventset_t es, uint16_t ev, void const *data, size_t data_size)
Send a control-plane message.
int fr_control_same_thread(fr_control_t *c)
int fr_control_socket_callback_add(fr_control_t *c, fr_control_eventset_t es, uint16_t ev, fr_control_socket_callback_t callback, void *uctx))
Register a callback for a message which carries a socket.
void fr_control_wait(fr_control_t *c)
Wait for a plane control to become readable.
uint16_t max_size
the largest payload a message may carry.
uint16_t slots
messages the queue holds unread.
Stores all information relating to an event list.
static fr_event_list_t * el