26 RCSIDH(module_rlm_h,
"$Id: bc6487c43fafb70cca2675812562f2163931c392 $")
32 #include <freeradius-devel/server/module.h>
58 char const *log_prefix,
59 char const *trigger_prefix,
66 char const *trigger_prefix,
88 char const **name1,
char const **name2,
89 char const *asked_name);
Defines a CONF_PAIR to C data type mapping.
Common header for all CONF_* types.
A section grouping multiple CONF_PAIR.
@ MOD_COUNT
10 how many components there are.
Value of an enumerated attribute.
Stores all information relating to an event list.
Specifies a module method identifier.
char const * module_rlm_state_method_to_str(module_state_func_table_t const *table, module_method_t method, char const *def)
module_instance_t * module_rlm_by_name(module_instance_t const *parent, char const *asked_name)
void modules_rlm_thread_detach(void)
Frees thread-specific data for all registered backend modules.
int modules_rlm_bootstrap(CONF_SECTION *root)
Bootstrap modules and virtual modules.
CONF_SECTION * module_rlm_by_name_virtual(char const *asked_name)
module_method_name_t const * method_names
named methods
module_t common
Common fields presented by all modules.
int modules_rlm_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el))
Allocates thread-specific data for all registered backend modules.
module_instance_t * module_rlm_by_name_and_method(module_method_t *method, call_env_method_t const **method_env, char const **name1, char const **name2, char const *asked_name)
Find an existing module instance and verify it implements the specified method.
exfile_t * module_rlm_exfile_init(TALLOC_CTX *ctx, CONF_SECTION *module, uint32_t max_entries, fr_time_delta_t max_idle, bool locking, char const *trigger_prefix, fr_pair_list_t *trigger_args)
Initialise a module specific exfile handle.
static module_rlm_t const * module_rlm_from_module(module_t const *module)
Cast a module_t to a module_rlm_t.
int module_rlm_submodule_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule)
Generic conf_parser_t func for loading drivers.
fr_dict_t const ** dict
pointer to local fr_dict_t*
bool module_rlm_section_type_set(request_t *request, fr_dict_attr_t const *type_da, fr_dict_enum_value_t const *enumv)
Set the next section type if it's not already set.
fr_pool_t * module_rlm_connection_pool_init(CONF_SECTION *module, void *opaque, fr_pool_connection_create_t c, fr_pool_connection_alive_t a, char const *log_prefix, char const *trigger_prefix, fr_pair_list_t *trigger_args)
Initialise a module specific connection pool.
module_method_t module_rlm_state_str_to_method(module_state_func_table_t const *table, char const *name, module_method_t def)
int modules_rlm_free(void)
Cleanup all global structures.
module_thread_instance_t * module_rlm_thread_by_data(void const *data)
int modules_rlm_instantiate(void)
Performs the instantiation phase for all backend modules.
int modules_rlm_init(void)
Initialise the module list structure.
char const * section_type_value[MOD_COUNT]
void *(* fr_pool_connection_create_t)(TALLOC_CTX *ctx, void *opaque, fr_time_delta_t timeout)
Create a new connection handle.
int(* fr_pool_connection_alive_t)(void *opaque, void *connection)
Check a connection handle is still viable.
static const call_env_method_t method_env
unlang_action_t(* module_method_t)(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Module section callback.
Struct exported by a rlm_* module.
Map string values to module state method.
Per thread per instance data.
A time delta, a difference in time measured in nanoseconds.
static fr_event_list_t * el
static size_t char ** out