The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Macros | Functions | Variables
base.c File Reference

TTLS process module. More...

#include <freeradius-devel/protocol/freeradius/freeradius.internal.h>
#include <freeradius-devel/radius/radius.h>
#include <freeradius-devel/server/main_config.h>
#include <freeradius-devel/server/module.h>
#include <freeradius-devel/server/pair.h>
#include <freeradius-devel/server/protocol.h>
#include <freeradius-devel/server/state.h>
#include <freeradius-devel/unlang/module.h>
#include <freeradius-devel/util/debug.h>
#include <freeradius-devel/server/process.h>
+ Include dependency graph for base.c:

Go to the source code of this file.

Data Structures

struct  process_ttls_auth_t
 
struct  process_ttls_sections_t
 
struct  process_ttls_session_t
 
struct  process_ttls_t
 

Macros

#define PROCESS_CODE_DO_NOT_RESPOND   FR_RADIUS_CODE_DO_NOT_RESPOND
 
#define PROCESS_CODE_MAX   FR_RADIUS_CODE_MAX
 
#define PROCESS_INST   process_ttls_t
 
#define PROCESS_PACKET_CODE_VALID   FR_RADIUS_PACKET_CODE_VALID
 
#define PROCESS_PACKET_TYPE   fr_radius_packet_code_t
 

Functions

static int mod_bootstrap (module_inst_ctx_t const *mctx)
 
static int mod_instantiate (module_inst_ctx_t const *mctx)
 
static unlang_action_t mod_process (rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
 
static void radius_packet_debug (request_t *request, fr_packet_t *packet, fr_pair_list_t *list, bool received)
 
 RESUME (access_accept)
 
 RESUME (access_challenge)
 
 RESUME (access_reject)
 
 RESUME (access_request)
 
 RESUME (auth_type)
 
 RESUME (protocol_error)
 

Variables

static fr_dict_attr_t const * attr_auth_type
 
static fr_dict_attr_t const * attr_calling_station_id
 
static fr_dict_attr_t const * attr_chap_password
 
static fr_dict_attr_t const * attr_error_cause
 
static fr_dict_attr_t const * attr_module_failure_message
 
static fr_dict_attr_t const * attr_module_success_message
 
static fr_dict_attr_t const * attr_nas_port
 
static fr_dict_attr_t const * attr_original_packet_code
 
static fr_dict_attr_t const * attr_packet_type
 
static fr_dict_attr_t const * attr_service_type
 
static fr_dict_attr_t const * attr_state
 
static fr_dict_attr_t const * attr_stripped_user_name
 
static fr_dict_attr_t const * attr_user_name
 
static fr_dict_attr_t const * attr_user_password
 
static const conf_parser_t auth_config []
 
static virtual_server_compile_t const compile_list []
 
static const conf_parser_t config []
 
static fr_dict_t const * dict_freeradius
 
static fr_dict_t const * dict_radius
 
static fr_value_box_t const * enum_auth_type_accept
 
static fr_value_box_t const * enum_auth_type_reject
 
static fr_process_state_t const process_state []
 
fr_process_module_t process_ttls
 
fr_dict_autoload_t process_ttls_dict []
 
fr_dict_attr_autoload_t process_ttls_dict_attr []
 
fr_dict_enum_autoload_t process_ttls_dict_enum []
 
static const conf_parser_t session_config []
 

Detailed Description

TTLS process module.

Id
39623b0385fdbd9ea3a5c32991257aa2d224e3e1

Definition in file base.c.


Data Structure Documentation

◆ process_ttls_auth_t

struct process_ttls_auth_t

Definition at line 134 of file base.c.

+ Collaboration diagram for process_ttls_auth_t:
Data Fields
process_ttls_session_t session Session settings.
fr_state_tree_t * state_tree State tree to link multiple requests/responses.

◆ process_ttls_sections_t

struct process_ttls_sections_t

Definition at line 100 of file base.c.

+ Collaboration diagram for process_ttls_sections_t:
Data Fields
CONF_SECTION * access_accept
CONF_SECTION * access_challenge
CONF_SECTION * access_reject
CONF_SECTION * access_request
CONF_SECTION * accounting_request
CONF_SECTION * accounting_response
CONF_SECTION * coa_ack
CONF_SECTION * coa_nak
CONF_SECTION * coa_request
CONF_SECTION * disconnect_ack
CONF_SECTION * disconnect_nak
CONF_SECTION * disconnect_request
CONF_SECTION * do_not_respond
uint64_t nothing
CONF_SECTION * protocol_error
CONF_SECTION * status_server

◆ process_ttls_session_t

struct process_ttls_session_t

Definition at line 125 of file base.c.

+ Collaboration diagram for process_ttls_session_t:
Data Fields
uint32_t max Maximum ongoing session allowed.
uint8_t state_server_id Sets a specific byte in the state to allow the authenticating server to be identified in packet captures.
fr_time_delta_t timeout Maximum time between the last response and next request.

◆ process_ttls_t

struct process_ttls_t

Definition at line 140 of file base.c.

+ Collaboration diagram for process_ttls_t:
Data Fields
process_ttls_auth_t auth Authentication configuration.
process_ttls_sections_t sections Pointers to various config sections we need to execute.
CONF_SECTION * server_cs Our virtual server.

Macro Definition Documentation

◆ PROCESS_CODE_DO_NOT_RESPOND

#define PROCESS_CODE_DO_NOT_RESPOND   FR_RADIUS_CODE_DO_NOT_RESPOND

Definition at line 149 of file base.c.

◆ PROCESS_CODE_MAX

#define PROCESS_CODE_MAX   FR_RADIUS_CODE_MAX

Definition at line 148 of file base.c.

◆ PROCESS_INST

#define PROCESS_INST   process_ttls_t

Definition at line 151 of file base.c.

◆ PROCESS_PACKET_CODE_VALID

#define PROCESS_PACKET_CODE_VALID   FR_RADIUS_PACKET_CODE_VALID

Definition at line 150 of file base.c.

◆ PROCESS_PACKET_TYPE

#define PROCESS_PACKET_TYPE   fr_radius_packet_code_t

Definition at line 147 of file base.c.

Function Documentation

◆ mod_bootstrap()

static int mod_bootstrap ( module_inst_ctx_t const *  mctx)
static

Definition at line 517 of file base.c.

+ Here is the call graph for this function:

◆ mod_instantiate()

static int mod_instantiate ( module_inst_ctx_t const *  mctx)
static

Definition at line 506 of file base.c.

+ Here is the call graph for this function:

◆ mod_process()

static unlang_action_t mod_process ( rlm_rcode_t p_result,
module_ctx_t const *  mctx,
request_t request 
)
static

Definition at line 485 of file base.c.

+ Here is the call graph for this function:

◆ radius_packet_debug()

static void radius_packet_debug ( request_t request,
fr_packet_t packet,
fr_pair_list_t list,
bool  received 
)
static

Definition at line 177 of file base.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RESUME() [1/6]

RESUME ( access_accept  )

Definition at line 388 of file base.c.

+ Here is the call graph for this function:

◆ RESUME() [2/6]

RESUME ( access_challenge  )

Definition at line 424 of file base.c.

+ Here is the call graph for this function:

◆ RESUME() [3/6]

RESUME ( access_reject  )

Definition at line 414 of file base.c.

+ Here is the call graph for this function:

◆ RESUME() [4/6]

RESUME ( access_request  )

Definition at line 218 of file base.c.

+ Here is the call graph for this function:

◆ RESUME() [5/6]

RESUME ( auth_type  )

Definition at line 286 of file base.c.

+ Here is the call graph for this function:

◆ RESUME() [6/6]

RESUME ( protocol_error  )

Definition at line 447 of file base.c.

+ Here is the call graph for this function:

Variable Documentation

◆ attr_auth_type

fr_dict_attr_t const* attr_auth_type
static

Definition at line 49 of file base.c.

◆ attr_calling_station_id

fr_dict_attr_t const* attr_calling_station_id
static

Definition at line 54 of file base.c.

◆ attr_chap_password

fr_dict_attr_t const* attr_chap_password
static

Definition at line 55 of file base.c.

◆ attr_error_cause

fr_dict_attr_t const* attr_error_cause
static

Definition at line 63 of file base.c.

◆ attr_module_failure_message

fr_dict_attr_t const* attr_module_failure_message
static

Definition at line 50 of file base.c.

◆ attr_module_success_message

fr_dict_attr_t const* attr_module_success_message
static

Definition at line 51 of file base.c.

◆ attr_nas_port

fr_dict_attr_t const* attr_nas_port
static

Definition at line 56 of file base.c.

◆ attr_original_packet_code

fr_dict_attr_t const* attr_original_packet_code
static

Definition at line 62 of file base.c.

◆ attr_packet_type

fr_dict_attr_t const* attr_packet_type
static

Definition at line 57 of file base.c.

◆ attr_service_type

fr_dict_attr_t const* attr_service_type
static

Definition at line 58 of file base.c.

◆ attr_state

fr_dict_attr_t const* attr_state
static

Definition at line 59 of file base.c.

◆ attr_stripped_user_name

fr_dict_attr_t const* attr_stripped_user_name
static

Definition at line 52 of file base.c.

◆ attr_user_name

fr_dict_attr_t const* attr_user_name
static

Definition at line 60 of file base.c.

◆ attr_user_password

fr_dict_attr_t const* attr_user_password
static

Definition at line 61 of file base.c.

◆ auth_config

const conf_parser_t auth_config[]
static
Initial value:
= {
}
#define CONF_PARSER_TERMINATOR
Definition: cf_parse.h:626
#define FR_CONF_OFFSET_SUBSECTION(_name, _flags, _struct, _field, _subcs)
conf_parser_t which populates a sub-struct using a CONF_SECTION
Definition: cf_parse.h:297
static const conf_parser_t session_config[]
Definition: base.c:154

Definition at line 162 of file base.c.

◆ compile_list

virtual_server_compile_t const compile_list[]
static

Definition at line 620 of file base.c.

◆ config

const conf_parser_t config[]
static
Initial value:
= {
{ FR_CONF_OFFSET_SUBSECTION("Access-Request", 0, process_ttls_t, auth, auth_config) },
}
static const conf_parser_t auth_config[]
Definition: base.c:162

Definition at line 168 of file base.c.

◆ dict_freeradius

fr_dict_t const* dict_freeradius
static

Definition at line 39 of file base.c.

◆ dict_radius

fr_dict_t const* dict_radius
static

Definition at line 40 of file base.c.

◆ enum_auth_type_accept

fr_value_box_t const* enum_auth_type_accept
static

Definition at line 87 of file base.c.

◆ enum_auth_type_reject

fr_value_box_t const* enum_auth_type_reject
static

Definition at line 88 of file base.c.

◆ process_state

fr_process_state_t const process_state[]
static

Definition at line 532 of file base.c.

◆ process_ttls

fr_process_module_t process_ttls
Initial value:
= {
.common = {
.name = "ttls",
.config = config,
.inst_size = sizeof(process_ttls_t),
.bootstrap = mod_bootstrap,
},
.process = mod_process,
.compile_list = compile_list,
.dict = &dict_radius
}
#define MODULE_MAGIC_INIT
Stop people using different module/library/server versions together.
Definition: dl_module.h:65
fr_dict_t const * dict_radius
Definition: base.c:74
static unlang_action_t mod_process(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Definition: base.c:485
static virtual_server_compile_t const compile_list[]
Definition: base.c:620
static int mod_bootstrap(module_inst_ctx_t const *mctx)
Definition: base.c:517
static const conf_parser_t config[]
Definition: base.c:168
static int mod_instantiate(module_inst_ctx_t const *mctx)
Definition: base.c:506
static int instantiate(module_inst_ctx_t const *mctx)
Definition: rlm_rest.c:1312

Definition at line 667 of file base.c.

◆ process_ttls_dict

fr_dict_autoload_t process_ttls_dict
Initial value:
= {
{ .out = &dict_freeradius, .proto = "freeradius" },
{ .out = &dict_radius, .proto = "radius" },
{ NULL }
}
fr_dict_t const * dict_freeradius
Definition: base.c:73

Definition at line 43 of file base.c.

◆ process_ttls_dict_attr

fr_dict_attr_autoload_t process_ttls_dict_attr
Initial value:
= {
{ .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius },
{ .out = &attr_module_failure_message, .name = "Module-Failure-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius },
{ .out = &attr_module_success_message, .name = "Module-Success-Message", .type = FR_TYPE_STRING, .dict = &dict_freeradius },
{ .out = &attr_stripped_user_name, .name = "Stripped-User-Name", .type = FR_TYPE_STRING, .dict = &dict_freeradius },
{ .out = &attr_calling_station_id, .name = "Calling-Station-Id", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_chap_password, .name = "CHAP-Password", .type = FR_TYPE_OCTETS, .dict = &dict_radius },
{ .out = &attr_nas_port, .name = "NAS-Port", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_service_type, .name = "Service-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_state, .name = "State", .type = FR_TYPE_OCTETS, .dict = &dict_radius },
{ .out = &attr_user_name, .name = "User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_user_password, .name = "User-Password", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_original_packet_code, .name = "Extended-Attribute-1.Original-Packet-Code", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_error_cause, .name = "Error-Cause", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ NULL }
}
fr_dict_attr_t const * attr_state
Definition: base.c:96
fr_dict_attr_t const * attr_user_name
Definition: base.c:97
@ FR_TYPE_STRING
String of printable characters.
Definition: merged_model.c:83
@ FR_TYPE_UINT32
32 Bit unsigned integer.
Definition: merged_model.c:99
@ FR_TYPE_OCTETS
Raw octets.
Definition: merged_model.c:84
static fr_dict_attr_t const * attr_packet_type
Definition: base.c:57
static fr_dict_attr_t const * attr_user_password
Definition: base.c:61
static fr_dict_attr_t const * attr_module_failure_message
Definition: base.c:50
static fr_dict_attr_t const * attr_stripped_user_name
Definition: base.c:52
static fr_dict_attr_t const * attr_chap_password
Definition: base.c:55
static fr_dict_attr_t const * attr_calling_station_id
Definition: base.c:54
static fr_dict_attr_t const * attr_auth_type
Definition: base.c:49
static fr_dict_attr_t const * attr_error_cause
Definition: base.c:63
static fr_dict_attr_t const * attr_nas_port
Definition: base.c:56
static fr_dict_attr_t const * attr_service_type
Definition: base.c:58
static fr_dict_attr_t const * attr_original_packet_code
Definition: base.c:62
static fr_dict_attr_t const * attr_module_success_message
Definition: base.c:51

Definition at line 66 of file base.c.

◆ process_ttls_dict_enum

fr_dict_enum_autoload_t process_ttls_dict_enum
Initial value:
= {
{ .out = &enum_auth_type_accept, .name = "Accept", .attr = &attr_auth_type },
{ .out = &enum_auth_type_reject, .name = "Reject", .attr = &attr_auth_type },
{ NULL }
}
static fr_value_box_t const * enum_auth_type_reject
Definition: base.c:88
static fr_value_box_t const * enum_auth_type_accept
Definition: base.c:87

Definition at line 91 of file base.c.

◆ session_config

const conf_parser_t session_config[]
static
Initial value:
= {
{ FR_CONF_OFFSET("timeout", process_ttls_session_t, timeout), .dflt = "15" },
{ FR_CONF_OFFSET("max", process_ttls_session_t, max), .dflt = "4096" },
{ FR_CONF_OFFSET("state_server_id", process_ttls_session_t, state_server_id) },
}
#define FR_CONF_OFFSET(_name, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
Definition: cf_parse.h:268
static fr_time_delta_t timeout
Definition: dhcpclient.c:54

Definition at line 154 of file base.c.