![]() |
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>
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 |
Detail master protocol handler.
Definition in file proto_detail.h.
| 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 |
| 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.
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? |
| struct proto_detail_work_thread_s |
Definition at line 106 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_timer_t * | 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 75 of file proto_detail.h.
| typedef struct proto_detail_work_thread_s proto_detail_work_thread_t |
Definition at line 104 of file proto_detail.h.
1.9.8