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

Tracks sessions. More...

#include <freeradius-devel/server/base.h>
#include <freeradius-devel/server/radutmp.h>
#include <freeradius-devel/server/module_rlm.h>
#include <freeradius-devel/util/debug.h>
#include <freeradius-devel/radius/radius.h>
#include <fcntl.h>
#include "config.h"
+ Include dependency graph for rlm_radutmp.c:

Go to the source code of this file.

Data Structures

struct  nas_port_s
 
struct  rlm_radutmp_env_t
 
struct  rlm_radutmp_t
 

Macros

#define LOCK_LEN   sizeof(struct radutmp)
 

Typedefs

typedef struct nas_port_s NAS_PORT
 

Functions

static unlang_action_t mod_accounting (rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
 
static NAS_PORTnas_port_find (NAS_PORT *nas_port_list, uint32_t nasaddr, uint16_t port)
 
static unlang_action_t radutmp_zap (rlm_rcode_t *p_result, request_t *request, char const *filename, uint32_t nasaddr, time_t t)
 

Variables

static fr_dict_attr_t const * attr_acct_delay_time
 
static fr_dict_attr_t const * attr_acct_session_id
 
static fr_dict_attr_t const * attr_acct_session_time
 
static fr_dict_attr_t const * attr_acct_status_type
 
static fr_dict_attr_t const * attr_calling_station_id
 
static fr_dict_attr_t const * attr_framed_ip_address
 
static fr_dict_attr_t const * attr_framed_protocol
 
static fr_dict_attr_t const * attr_login_ip_host
 
static fr_dict_attr_t const * attr_nas_ip_address
 
static fr_dict_attr_t const * attr_nas_port
 
static fr_dict_attr_t const * attr_nas_port_type
 
static fr_dict_t const * dict_radius
 
static const call_env_method_t method_env
 
static const conf_parser_t module_config []
 
static char const porttypes [] = "ASITX"
 
module_rlm_t rlm_radutmp
 
fr_dict_autoload_t rlm_radutmp_dict []
 
fr_dict_attr_autoload_t rlm_radutmp_dict_attr []
 

Detailed Description

Tracks sessions.

Id
77dec2ca063072afc583583d141a570f6c296659

Definition in file rlm_radutmp.c.


Data Structure Documentation

◆ nas_port_s

struct nas_port_s

Definition at line 44 of file rlm_radutmp.c.

+ Collaboration diagram for nas_port_s:
Data Fields
uint32_t nasaddr
NAS_PORT * next
off_t offset
uint16_t port

◆ rlm_radutmp_env_t

struct rlm_radutmp_env_t

Definition at line 58 of file rlm_radutmp.c.

+ Collaboration diagram for rlm_radutmp_env_t:
Data Fields
fr_value_box_t filename
fr_value_box_t username

◆ rlm_radutmp_t

struct rlm_radutmp_t

Definition at line 51 of file rlm_radutmp.c.

+ Collaboration diagram for rlm_radutmp_t:
Data Fields
bool caller_id_ok
bool check_nas
NAS_PORT * nas_port_list
uint32_t permission

Macro Definition Documentation

◆ LOCK_LEN

#define LOCK_LEN   sizeof(struct radutmp)

Definition at line 36 of file rlm_radutmp.c.

Typedef Documentation

◆ NAS_PORT

typedef struct nas_port_s NAS_PORT

Definition at line 38 of file rlm_radutmp.c.

Function Documentation

◆ mod_accounting()

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

Definition at line 180 of file rlm_radutmp.c.

+ Here is the call graph for this function:

◆ nas_port_find()

static NAS_PORT* nas_port_find ( NAS_PORT nas_port_list,
uint32_t  nasaddr,
uint16_t  port 
)
static

Definition at line 163 of file rlm_radutmp.c.

+ Here is the caller graph for this function:

◆ radutmp_zap()

static unlang_action_t radutmp_zap ( rlm_rcode_t p_result,
request_t request,
char const *  filename,
uint32_t  nasaddr,
time_t  t 
)
static

Definition at line 109 of file rlm_radutmp.c.

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

Variable Documentation

◆ attr_acct_delay_time

fr_dict_attr_t const* attr_acct_delay_time
static

Definition at line 78 of file rlm_radutmp.c.

◆ attr_acct_session_id

fr_dict_attr_t const* attr_acct_session_id
static

Definition at line 79 of file rlm_radutmp.c.

◆ attr_acct_session_time

fr_dict_attr_t const* attr_acct_session_time
static

Definition at line 80 of file rlm_radutmp.c.

◆ attr_acct_status_type

fr_dict_attr_t const* attr_acct_status_type
static

Definition at line 81 of file rlm_radutmp.c.

◆ attr_calling_station_id

fr_dict_attr_t const* attr_calling_station_id
static

Definition at line 82 of file rlm_radutmp.c.

◆ attr_framed_ip_address

fr_dict_attr_t const* attr_framed_ip_address
static

Definition at line 83 of file rlm_radutmp.c.

◆ attr_framed_protocol

fr_dict_attr_t const* attr_framed_protocol
static

Definition at line 84 of file rlm_radutmp.c.

◆ attr_login_ip_host

fr_dict_attr_t const* attr_login_ip_host
static

Definition at line 85 of file rlm_radutmp.c.

◆ attr_nas_ip_address

fr_dict_attr_t const* attr_nas_ip_address
static

Definition at line 86 of file rlm_radutmp.c.

◆ attr_nas_port

fr_dict_attr_t const* attr_nas_port
static

Definition at line 87 of file rlm_radutmp.c.

◆ attr_nas_port_type

fr_dict_attr_t const* attr_nas_port_type
static

Definition at line 88 of file rlm_radutmp.c.

◆ dict_radius

fr_dict_t const* dict_radius
static

Definition at line 70 of file rlm_radutmp.c.

◆ method_env

const call_env_method_t method_env
static
Initial value:
= {
.env = (call_env_parser_t[]) {
.pair.dflt = "%{User-Name}", .pair.dflt_quote = T_DOUBLE_QUOTED_STRING },
}
}
#define CALL_ENV_TERMINATOR
Definition: call_env.h:212
#define FR_CALL_ENV_METHOD_OUT(_inst)
Helper macro for populating the size/type fields of a call_env_method_t from the output structure typ...
Definition: call_env.h:216
@ CALL_ENV_FLAG_REQUIRED
Associated conf pair or section is required.
Definition: call_env.h:73
#define FR_CALL_ENV_OFFSET(_name, _cast_type, _flags, _struct, _field)
Specify a call_env_parser_t which writes out runtime results to the specified field.
Definition: call_env.h:316
Per method call config.
Definition: call_env.h:171
@ FR_TYPE_STRING
String of printable characters.
Definition: merged_model.c:83
username
Definition: rlm_securid.c:420
@ T_DOUBLE_QUOTED_STRING
Definition: token.h:121

Definition at line 541 of file rlm_radutmp.c.

◆ module_config

const conf_parser_t module_config[]
static
Initial value:
= {
{ FR_CONF_OFFSET("check_with_nas", rlm_radutmp_t, check_nas), .dflt = "yes" },
{ FR_CONF_OFFSET("permissions", rlm_radutmp_t, permission), .dflt = "0644" },
{ FR_CONF_OFFSET("caller_id", rlm_radutmp_t, caller_id_ok), .dflt = "no" },
}
#define CONF_PARSER_TERMINATOR
Definition: cf_parse.h:626
#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

Definition at line 63 of file rlm_radutmp.c.

◆ porttypes

char const porttypes[] = "ASITX"
static

Definition at line 38 of file rlm_radutmp.c.

◆ rlm_radutmp

module_rlm_t rlm_radutmp
Initial value:
= {
.common = {
.name = "radutmp",
.inst_size = sizeof(rlm_radutmp_t),
},
.method_names = (module_method_name_t[]){
{ .name1 = "accounting", .name2 = CF_IDENT_ANY, .method = mod_accounting,
.method_env = &method_env },
}
}
char const * name1
Name of the CONF_ITEM to parse.
Definition: cf_parse.h:564
#define CF_IDENT_ANY
Definition: cf_util.h:78
#define MODULE_MAGIC_INIT
Stop people using different module/library/server versions together.
Definition: dl_module.h:65
Specifies a module method identifier.
Definition: module_method.c:36
static const conf_parser_t config[]
Definition: base.c:188
static const call_env_method_t method_env
Definition: rlm_radutmp.c:541
static unlang_action_t mod_accounting(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Definition: rlm_radutmp.c:180
static const conf_parser_t module_config[]
Definition: rlm_radutmp.c:63
@ MODULE_TYPE_THREAD_UNSAFE
Module is not threadsafe.
Definition: module.h:50
#define MODULE_NAME_TERMINATOR
Definition: module.h:135

Definition at line 553 of file rlm_radutmp.c.

◆ rlm_radutmp_dict

fr_dict_autoload_t rlm_radutmp_dict
Initial value:
= {
{ .out = &dict_radius, .proto = "radius" },
{ NULL }
}
static fr_dict_t const * dict_radius
Definition: rlm_radutmp.c:70

Definition at line 73 of file rlm_radutmp.c.

◆ rlm_radutmp_dict_attr

fr_dict_attr_autoload_t rlm_radutmp_dict_attr
Initial value:
= {
{ .out = &attr_acct_delay_time, .name = "Acct-Delay-Time", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_acct_session_id, .name = "Acct-Session-Id", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_acct_session_time, .name = "Acct-Session-Time", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_acct_status_type, .name = "Acct-Status-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_calling_station_id, .name = "Calling-Station-Id", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_framed_ip_address, .name = "Framed-IP-Address", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_radius },
{ .out = &attr_framed_protocol, .name = "Framed-Protocol", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_login_ip_host, .name = "Login-IP-Host", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_radius },
{ .out = &attr_nas_ip_address, .name = "NAS-IP-Address", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_radius },
{ .out = &attr_nas_port, .name = "NAS-Port", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ .out = &attr_nas_port_type, .name = "NAS-Port-Type", .type = FR_TYPE_UINT32, .dict = &dict_radius },
{ NULL }
}
@ FR_TYPE_IPV4_ADDR
32 Bit IPv4 Address.
Definition: merged_model.c:86
@ FR_TYPE_UINT32
32 Bit unsigned integer.
Definition: merged_model.c:99
static fr_dict_attr_t const * attr_login_ip_host
Definition: rlm_radutmp.c:85
static fr_dict_attr_t const * attr_acct_session_time
Definition: rlm_radutmp.c:80
static fr_dict_attr_t const * attr_nas_port_type
Definition: rlm_radutmp.c:88
static fr_dict_attr_t const * attr_calling_station_id
Definition: rlm_radutmp.c:82
static fr_dict_attr_t const * attr_nas_ip_address
Definition: rlm_radutmp.c:86
static fr_dict_attr_t const * attr_framed_ip_address
Definition: rlm_radutmp.c:83
static fr_dict_attr_t const * attr_framed_protocol
Definition: rlm_radutmp.c:84
static fr_dict_attr_t const * attr_nas_port
Definition: rlm_radutmp.c:87
static fr_dict_attr_t const * attr_acct_status_type
Definition: rlm_radutmp.c:81
static fr_dict_attr_t const * attr_acct_delay_time
Definition: rlm_radutmp.c:78
static fr_dict_attr_t const * attr_acct_session_id
Definition: rlm_radutmp.c:79

Definition at line 91 of file rlm_radutmp.c.