31 #include <freeradius-devel/io/schedule.h>
32 #include <freeradius-devel/server/cf_parse.h>
33 #include <freeradius-devel/unlang/module.h>
34 #include <freeradius-devel/util/dict.h>
50 char const *virtual_server,
fr_dict_t const *
namespace,
92 #define COMPILE_TERMINATOR { .name = NULL, .name2 = 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.
enum rlm_components rlm_components_t
The different section components of the server.
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
virtual_server_method_t const * virtual_server_section_methods(char const *name1, char const *name2))
Find the component for a 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_servers_bootstrap(CONF_SECTION *config)
Load protocol modules and call their bootstrap methods.
const conf_parser_t virtual_servers_on_read_config[]
int virtual_server_compile_sections(CONF_SECTION *server, virtual_server_compile_t const *list, tmpl_rules_t const *rules, void *instance))
Compile sections for a virtual server.
CONF_SECTION * virtual_server_find(char const *name)
Return virtual server matching the specified name.
bool dont_cache
If true, the CONF_SECTION pointer won't be written and the offset will be ignored.
char const * name
module method name1 which is allowed in this section
CONF_SECTION * virtual_server_by_child(CONF_SECTION *section)
Find a virtual server using one of its sections.
int virtual_servers_open(fr_schedule_t *sc)
Open all the listen sockets.
virtual_server_method_t const * methods
list of module methods which are allowed in this section
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.
char const * name
Name of the processing section, such as "recv" or "send".
char const * name2
Second name, such as "Access-Request".
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.
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
int virtual_server_section_register(virtual_server_compile_t const *entry)
Register name1 / name2 as allowed processing sections.
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.
int virtual_servers_free(void)
int virtual_servers_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el)
Perform thread instantiation for all process modules and listeners.
size_t offset
where the CONF_SECTION pointer is written
char const * name2
module method name2 which is allowed in this section
rlm_components_t component
Sets the default list of actions for this section.
Processing sections which are allowed in this virtual server.
Module methods which are allowed in virtual servers.