26 RCSIDH(module_rlm_h,
"$Id: c0d00984ebc7cc1959e036ae89c057e104683e80 $")
35 #include <freeradius-devel/server/module.h>
36 #include <freeradius-devel/server/virtual_servers.h>
97 char const *log_prefix,
98 char const *trigger_prefix,
106 char const *trigger_prefix,
Defines a CONF_PAIR to C data type mapping.
Common header for all CONF_* types.
A section grouping multiple CONF_PAIR.
Value of an enumerated attribute.
Head of a doubly linked list.
Entry in a doubly linked list.
Stores all information relating to an event list.
Temporary structure to hold arguments for instantiation calls.
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.
module_method_group_t method_group
named methods
module_instance_t * module_rlm_dynamic_by_name(module_instance_t const *parent, char const *name)
xlat_t * module_rlm_xlat_register(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx, char const *name, xlat_func_t func, fr_type_t return_type))
module_instance_t * mi
The module instance that registered the xlat.
fr_dlist_t entry
Entry in a linked list of registered xlats.
fr_slen_t module_rlm_by_name_and_method(TALLOC_CTX *ctx, module_method_call_t *mmc_out, virtual_server_t const *vs, section_name_t const *section, fr_sbuff_t *name, tmpl_rules_t const *t_rules))
Find an existing module instance and verify it implements the specified method.
void module_rlm_list_debug(void)
Print information on all loaded modules.
fr_dlist_head_t xlats
xlats registered to this module instance.
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 * mi
The process modules also push module calls onto the stack for execution.
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.
xlat_t const * xlat
The xlat function.
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.
tmpl_t * key
Dynamic key, only set for dynamic modules.
section_name_t asked
The actual <name1>.
module_t common
Common fields presented by all modules.
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.
CONF_SECTION * module_rlm_virtual_by_name(char const *name)
module_method_binding_t mmb
Method we're calling.
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.
static module_rlm_t * module_rlm_from_module(module_t *module)
module_instance_t * module_rlm_static_by_name(module_instance_t const *parent, char const *name)
int modules_rlm_free(void)
Cleanup all global structures.
int modules_rlm_instantiate(void)
Performs the instantiation phase for all backend modules.
int modules_rlm_init(void)
Initialise the module list structure.
module_rlm_t const * rlm
Cached module_rlm_t.
The output of module_rlm_by_name_and_method.
An xlat function registered to a module.
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.
Named methods exported by a module.
A group of methods exported by a module or added as an overlay.
Struct exported by a rlm_* module.
Optional arguments passed to vp_tmpl functions.
A time delta, a difference in time measured in nanoseconds.
static fr_event_list_t * el
xlat_action_t(* xlat_func_t)(TALLOC_CTX *ctx, fr_dcursor_t *out, xlat_ctx_t const *xctx, request_t *request, fr_value_box_list_t *in)
xlat callback function
static size_t char ** out