The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
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>
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 |
Detail master protocol handler.
Definition in file proto_detail.h.
struct proto_detail_t |
Definition at line 37 of file proto_detail.h.
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 |
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. |
module_instance_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. |
module_instance_t * | work_submodule | the worker |
struct proto_detail_work_s |
Definition at line 80 of file proto_detail.h.
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? |
struct proto_detail_work_thread_s |
Definition at line 106 of file proto_detail.h.
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 |
unsigned int | last_line | line number of the last record read. |
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 struct proto_detail_work_s proto_detail_work_t |
Definition at line 1 of file proto_detail.h.
typedef struct proto_detail_work_thread_s proto_detail_work_thread_t |
Definition at line 1 of file proto_detail.h.