The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Typedefs
proto_detail.h File Reference

Detail master protocol handler. More...

#include <freeradius-devel/io/application.h>
#include <freeradius-devel/server/module_rlm.h>
#include <freeradius-devel/util/retry.h>
#include <freeradius-devel/util/dlist.h>
#include <pthread.h>
+ Include dependency graph for proto_detail.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  proto_detail_t
 
struct  proto_detail_work_s
 
struct  proto_detail_work_thread_s
 

Typedefs

typedef struct proto_detail_work_s proto_detail_work_t
 
typedef struct proto_detail_work_thread_s proto_detail_work_thread_t
 

Detailed Description

Detail master protocol handler.

Id
0c7a57519b220f434bc502fcc107524509a1bffd

Definition in file proto_detail.h.


Data Structure Documentation

◆ proto_detail_t

struct proto_detail_t

Definition at line 37 of file proto_detail.h.

+ Collaboration diagram for proto_detail_t:
Data Fields
fr_app_io_t const * app_io Easy access to the app_io handle.
CONF_SECTION * app_io_conf Easy access to the app_io's config section.
void * app_io_instance Easy access to the app_io instance.
fr_dict_attr_t const * attr_packet_type
uint32_t code packet code to use for incoming packets
CONF_SECTION * cs my configuration
fr_dict_t const * dict root dictionary
bool exit_when_done Hacked in functionality to allow easy testing of the detail reader.

exit when done reading the current file.

dl_module_inst_t * io_submodule As provided by the transport_parse callback.

Broken out into the app_io_* fields below for convenience.

fr_listen_t * listen The listener structure which describes the I/O path.
uint32_t max_packet_size for message ring buffer
uint32_t num_messages for message ring buffer
uint32_t priority for packet processing, larger == higher
fr_schedule_t * sc the scheduler, where we insert new readers
fr_app_t * self child / parent linking issues
CONF_SECTION * server_cs server CS for this listener
char const * type packet type name
fr_app_io_t const * work_io Easy access to the app_io handle.
CONF_SECTION * work_io_conf Easy access to the app_io's config secti.
void * work_io_instance Easy access to the app_io instance.
dl_module_inst_t * work_submodule the worker

◆ proto_detail_work_s

struct proto_detail_work_s

Definition at line 81 of file proto_detail.h.

+ Collaboration diagram for proto_detail_work_s:
Data Fields
fr_client_t * client so the rest of the server doesn't complain
CONF_SECTION * cs our configuration section
char const * directory containing the file below
char const * filename file name, usually with wildcards
fr_rb_node_t filename_node for dedup
char const * filename_work work file name
bool immediate start reading the detail files immediately
uint16_t max_outstanding number of packets to run in parallel
int mode O_RDWR or O_RDONLY.
proto_detail_t * parent The module that spawned us!
uint32_t poll_interval interval between polling
bool retransmit are we retransmitting on error?
fr_retry_config_t retry_config retry config with irt, mrt, etc.
bool track_progress do we track progress by writing?

◆ proto_detail_work_thread_s

struct proto_detail_work_thread_s

Definition at line 107 of file proto_detail.h.

+ Collaboration diagram for proto_detail_work_thread_s:
Data Fields
bool closing we should be closing the file
int count number of packets we read from this file.
fr_event_list_t * el for various timers
bool eof are we at EOF on reading?
fr_event_timer_t const * ev for detail file timers.
int fd file descriptor
proto_detail_work_thread_t * file_parent thread instance of the directory reader that spawned us
off_t file_size size of the file
char const * filename_work work file name
off_t header_offset offset of the current header we're reading
proto_detail_work_t const * inst instance data
size_t last_search where we last searched in the buffer MUST be offset, as the buffers can change.
size_t leftover
uint8_t * leftover_buffer
fr_dlist_head_t list for retransmissions
fr_listen_t * listen talloc_parent() is slow
fr_time_delta_t lock_interval interval between trying the locks.
char const * name debug name for printing
fr_network_t * nr for Linux-specific callbacks
int num_workers number of workers
uint32_t outstanding number of currently outstanding records;
bool paused Is reading paused?
off_t read_offset where we're reading from in filename_work
int vnode_fd file descriptor for vnode_delete
pthread_mutex_t worker_mutex for the workers

Typedef Documentation

◆ proto_detail_work_t

Definition at line 1 of file proto_detail.h.

◆ proto_detail_work_thread_t

Definition at line 1 of file proto_detail.h.