34 #include <freeradius-devel/io/schedule.h>
35 #include <freeradius-devel/server/cf_parse.h>
36 #include <freeradius-devel/unlang/module.h>
37 #include <freeradius-devel/unlang/mod_action.h>
38 #include <freeradius-devel/util/dict.h>
76 char const *virtual_server,
fr_dict_t const *
namespace,
111 #define COMPILE_TERMINATOR { .section = NULL }
unlang_action_t
Returned by unlang_op_t calls, determine the next action of the interpreter.
Defines a CONF_PAIR to C data type mapping.
Common header for all CONF_* types.
A section grouping multiple CONF_PAIR.
Stores all information relating to an event list.
static const conf_parser_t config[]
Optional arguments passed to vp_tmpl functions.
static const uchar sc[16]
static fr_event_list_t * el
static size_t char ** out
CONF_SECTION * server_cs
The server section.
bool listen_record(fr_listen_t *li)
Record that we're listening on a particular IP / port.
fr_dict_t const * virtual_server_dict_by_child_ci(CONF_ITEM const *ci)
Return the namespace for a given virtual server specified by a CONF_ITEM within the virtual server.
int virtual_server_section_register(virtual_server_t *vs, virtual_server_compile_t const *entry)
Register name1 / name2 as allowed processing sections.
int virtual_servers_bootstrap(CONF_SECTION *config)
Load protocol modules and call their bootstrap methods.
const conf_parser_t virtual_servers_on_read_config[]
bool dont_cache
If true, the CONF_SECTION pointer won't be written and the offset will be ignored.
section_name_t const ** virtual_server_section_methods(virtual_server_t const *vs, section_name_t const *section)
Find the component for a section.
int virtual_servers_open(fr_schedule_t *sc)
Open all the listen sockets.
int virtual_server_listen_transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule)
Generic conf_parser_t func for loading drivers.
const conf_parser_t virtual_servers_config[]
int virtual_server_cf_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM *ci, conf_parser_t const *rule))
int virtual_server_has_namespace(CONF_SECTION **out, char const *virtual_server, fr_dict_t const *namespace, CONF_ITEM *ci))
Verify that a given virtual_server exists and is of a particular namespace.
virtual_server_t const * virtual_server_by_child(CONF_ITEM const *ci)
Find a virtual server using one of its sections.
int virtual_server_section_attribute_define(CONF_SECTION *server_cs, char const *subcs_name, fr_dict_attr_t const *da)
Define a values for Auth-Type attributes by the sections present in a virtual-server.
unlang_action_t virtual_server_push(request_t *request, CONF_SECTION *server_cs, bool top_frame)
Set the request processing function.
void virtual_servers_thread_detach(void)
Free thread-specific data for all process modules and listeners.
void virtual_server_process_debug(void)
Print all the loaded process module instances.
fr_dict_t const * virtual_server_dict_by_cs(CONF_SECTION const *server_cs)
Return the namespace for the virtual server specified by a config section.
int virtual_servers_init(void)
Performs global initialisation for the virtual server code.
size_t instruction
where the instruction pointer is written
void virtual_server_listen_debug(void)
Print all the loaded listener instances.
int virtual_server_compile_sections(virtual_server_t const *vs, tmpl_rules_t const *rules)
Compile sections for a virtual server.
fr_listen_t * listen_find_any(fr_listen_t *li)
See if another global listener is using a particular IP / port.
fr_dict_t const * virtual_server_dict_by_name(char const *virtual_server)
Return the namespace for the named virtual server.
int virtual_servers_instantiate(void)
Instantiate all the virtual servers.
module_instance_t * virtual_server_listener_by_data(void const *data)
Resolve proto data to a module instance.
int virtual_servers_free(void)
unlang_mod_actions_t const * actions
Default actions for this section.
int virtual_servers_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el)
Perform thread instantiation for all process modules and listeners.
section_name_t const * section
Identifier for the section.
size_t offset
where the CONF_SECTION pointer is written
CONF_SECTION * virtual_server_cs(virtual_server_t const *vs)
Return the configuration section for a virtual server.
section_name_t const ** methods
list of auxilliary module methods which are allowed in if the main name doesn't match.
virtual_server_t const * virtual_server_find(char const *name)
Return virtual server matching the specified name.
Processing sections which are allowed in this virtual server.