17#include <freeradius-devel/io/base.h>
18#include <freeradius-devel/io/application.h>
19#include <freeradius-devel/server/time_tracking.h>
Public structure describing an I/O path for a protocol.
Describes a new application (protocol)
A section grouping multiple CONF_PAIR.
A full channel, which consists of two ends.
Entry in a doubly linked list.
fr_rb_node_t virtual_server_node
Entry into the virtual server's tree of listeners.
size_t num_messages
for the message ring buffer
fr_listen_t * listen
How we received this request, and how we'll send the reply.
bool non_socket_listener
special internal listener that does not use sockets.
char const * name
printable name for this socket - set by open
uint32_t sequence
higher == higher priority, too
fr_dlist_t entry
in the list of requests associated with this channel
bool track_duplicates
do we track duplicate packets?
fr_socket_t * app_io_addr
for tracking duplicate sockets
void const * app_instance
size_t default_message_size
copied from app_io, but may be changed
fr_time_tracking_t tracking
bool connected
is this for a connected socket?
void const * app_io_instance
I/O path configuration context.
int fr_io_listen_free(fr_listen_t *li)
uint32_t priority
higher == higher priority
CONF_SECTION * server_cs
CONF_SECTION of the server.
void * thread_instance
thread / socket context
bool no_write_callback
sometimes we don't need to do writes
int fd
file descriptor for this socket - set by open
bool needs_full_setup
Set to true to avoid the short cut when adding the listener.
fr_app_io_t const * app_io
I/O path functions.
Minimal data structure to use the new code.
Stores all information relating to an event list.
Holds information necessary for binding or connecting to a socket.