26 RCSIDH(master_h,
"$Id: b529dc111611d22530837d001975acb7b307a55d $")
28 #include <freeradius-devel/server/base.h>
29 #include <freeradius-devel/io/schedule.h>
30 #include <freeradius-devel/io/application.h>
31 #include <freeradius-devel/util/trie.h>
32 #include <freeradius-devel/util/talloc.h>
109 size_t default_message_size,
size_t num_messages) CC_HINT(
nonnull);
Public structure describing an I/O path for a protocol.
Describes a new application (protocol)
A section grouping multiple CONF_PAIR.
Describes a host allowed to send packets to the server.
Client definitions for master IO.
module_instance_t * submodule
As provided by the transport_parse callback.
fr_time_delta_t cleanup_delay
for Access-Request packets
uint8_t * reply
reply packet (if any)
uint32_t max_connections
maximum number of connections to allow
fr_event_timer_t const * ev
when we clean up this tracking entry
uint32_t max_clients
maximum number of dynamic clients to allow
fr_io_track_t * fr_master_io_track_alloc(fr_listen_t *li, fr_client_t *client, fr_ipaddr_t const *src_ipaddr, int src_port, fr_ipaddr_t const *dst_ipaddr, int dst_port)
int packets
number of packets using this entry
fr_time_t dynamic
timestamp for packet doing dynamic client definition
int fr_master_io_listen(fr_io_instance_t *io, fr_schedule_t *sc, size_t default_message_size, size_t num_messages)
fr_time_delta_t idle_timeout
for dynamic clients
fr_rb_node_t node
rbtree node in the tracking tree.
module_instance_t * mi
our parent mi
void * app_io_instance
Easy access to the app_io instance.
fr_app_io_t fr_master_app_io
fr_app_io_t const * app_io
Easy access to the app_io handle.
fr_io_address_t const * address
of this packet.. shared between multiple packets
fr_time_delta_t check_interval
polling for closed sockets
fr_app_t * app
main protocol handler
int ipproto
IP proto by number.
fr_trie_t * fr_master_io_network(TALLOC_CTX *ctx, int af, fr_ipaddr_t *allow, fr_ipaddr_t *deny)
Create a trie from arrays of allow / deny IP addresses.
bool dynamic_clients
do we have dynamic clients.
bool do_not_respond
don't respond
module_list_t * clients
Holds client modules created to represent sockets created as clients connect to the listener.
bool discard
whether or not we discard the packet
fr_time_t timestamp
when this packet was received
fr_time_delta_t nak_lifetime
lifetime of NAKed clients
void * app_instance
instance data for main protocol handler
fr_trie_t const * networks
trie of allowed networks
bool finished
are we finished the request?
uint8_t * packet
really a tracking structure, not a packet
size_t reply_len
length of reply, or 1 for "do not reply"
CONF_SECTION * server_cs
server CS for this listener
CONF_SECTION * app_io_conf
Easy access to the app_io's config section.
fr_io_client_t * client
client handling this packet.
fr_time_t expires
when this packet expires
uint32_t max_pending_packets
maximum number of pending packets
struct fr_io_track_s fr_io_track_t
static const uchar sc[16]
A time delta, a difference in time measured in nanoseconds.