All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
rlm_replicate.c File Reference

Duplicate RADIUS requests. More...

#include <freeradius-devel/radiusd.h>
#include <freeradius-devel/modules.h>
+ Include dependency graph for rlm_replicate.c:

Go to the source code of this file.

Functions

static rlm_rcode_t CC_HINT (nonnull)
 
static rlm_rcode_t replicate_packet (UNUSED void *instance, REQUEST *request, pair_lists_t list, PW_CODE code)
 Copy packet to multiple servers. More...
 
static rlm_rcode_t rlm_replicate_alloc (RADIUS_PACKET **out, REQUEST *request, pair_lists_t list, PW_CODE code)
 Allocate a request packet. More...
 

Variables

module_t rlm_replicate
 

Detailed Description

Duplicate RADIUS requests.

Id:
deba4012d1d5a7e68d322e3389e32c67bcf06792

Definition in file rlm_replicate.c.

Function Documentation

static rlm_rcode_t CC_HINT ( nonnull  )
static

Definition at line 248 of file rlm_replicate.c.

+ Here is the call graph for this function:

static rlm_rcode_t replicate_packet ( UNUSED void *  instance,
REQUEST request,
pair_lists_t  list,
PW_CODE  code 
)
static

Copy packet to multiple servers.

Create a duplicate of the packet and send it to a list of realms defined by the presence of the Replicate-To-Realm VP in the control list of the current request.

This is pretty hacky and is 100% fire and forget. If you're looking to forward authentication requests to multiple realms and process the responses, this function will not allow you to do that.

Parameters
[in]instanceof this module.
[in]requestThe current request.
[in]listof attributes to copy to the duplicate packet.
[in]codeto write into the code field of the duplicate packet.
Returns

Definition at line 110 of file rlm_replicate.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static rlm_rcode_t rlm_replicate_alloc ( RADIUS_PACKET **  out,
REQUEST request,
pair_lists_t  list,
PW_CODE  code 
)
static

Allocate a request packet.

This is done once per request with the same packet being sent to multiple realms.

Definition at line 35 of file rlm_replicate.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

module_t rlm_replicate
Initial value:
= {
.magic = RLM_MODULE_INIT,
.name = "replicate",
.methods = {
[MOD_PREACCT] = mod_preaccounting,
[MOD_PRE_PROXY] = mod_pre_proxy,
[MOD_RECV_COA] = mod_recv_coa
},
}
5 methods index for preproxy section.
Definition: modules.h:46
static rlm_rcode_t mod_accounting(void *instance, REQUEST *request)
Write accounting data to Couchbase documents.
static rlm_rcode_t mod_authorize(void *instance, REQUEST *request)
Handle authorization requests using Couchbase document data.
#define RLM_TYPE_THREAD_SAFE
Module is threadsafe.
Definition: modules.h:75
#define RLM_MODULE_INIT
Definition: modules.h:86
3 methods index for accounting section.
Definition: modules.h:44
2 methods index for preacct section.
Definition: modules.h:43
8 methods index for recvcoa section.
Definition: modules.h:50
1 methods index for authorize section.
Definition: modules.h:42

Definition at line 287 of file rlm_replicate.c.