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

Driver for the Redis noSQL key value store. More...

#include <freeradius-devel/radiusd.h>
#include <freeradius-devel/modules.h>
#include <freeradius-devel/modpriv.h>
#include <freeradius-devel/rad_assert.h>
#include "redis.h"
#include "cluster.h"
+ Include dependency graph for rlm_redis.c:

Go to the source code of this file.

Data Structures

struct  rlm_redis_t
 rlm_redis module instance More...
 

Macros

#define MAX_QUERY_LEN   4096
 Maximum command length. More...
 
#define MAX_REDIS_ARGS   16
 Maximum number of arguments. More...
 

Typedefs

typedef struct rlm_redis_t rlm_redis_t
 rlm_redis module instance More...
 

Functions

static int mod_bootstrap (CONF_SECTION *conf, void *instance)
 
static int mod_instantiate (CONF_SECTION *conf, void *instance)
 
static int redis_command_read_only (fr_redis_rcode_t *status_out, redisReply **reply_out, REQUEST *request, fr_redis_conn_t *conn, int argc, char const **argv)
 Change the state of a connection to READONLY execute a command and switch to READWRITE. More...
 
static ssize_t redis_xlat (char **out, size_t outlen, void const *mod_inst, UNUSED void const *xlat_inst, REQUEST *request, char const *fmt)
 

Variables

static CONF_PARSER module_config []
 
module_t rlm_redis
 

Detailed Description

Driver for the Redis noSQL key value store.

Id:
2656884de6c493c24e7d3ba36f79a799a5be23cc
Author
Gabriel Blanchard

Definition in file rlm_redis.c.


Data Structure Documentation

struct rlm_redis_t

rlm_redis module instance

Definition at line 50 of file rlm_redis.c.

+ Collaboration diagram for rlm_redis_t:
Data Fields
fr_redis_cluster_t * cluster Redis cluster.
fr_redis_conf_t conf Connection parameters for the Redis server.

Must be first field in this struct.

char const * name Instance name.

Macro Definition Documentation

#define MAX_QUERY_LEN   4096

Maximum command length.

Definition at line 39 of file rlm_redis.c.

#define MAX_REDIS_ARGS   16

Maximum number of arguments.

Definition at line 40 of file rlm_redis.c.

Typedef Documentation

typedef struct rlm_redis_t rlm_redis_t

rlm_redis module instance

Function Documentation

static int mod_bootstrap ( CONF_SECTION conf,
void *  instance 
)
static

Definition at line 319 of file rlm_redis.c.

+ Here is the call graph for this function:

static int mod_instantiate ( CONF_SECTION conf,
void *  instance 
)
static

Definition at line 334 of file rlm_redis.c.

+ Here is the call graph for this function:

static int redis_command_read_only ( fr_redis_rcode_t status_out,
redisReply **  reply_out,
REQUEST request,
fr_redis_conn_t conn,
int  argc,
char const **  argv 
)
static

Change the state of a connection to READONLY execute a command and switch to READWRITE.

Parameters
[out]status_outWhere to write the status from the command.
[out]reply_outWhere to write the reply associated with the highest priority status.
[in]requestThe current request.
[in]connto issue commands with.
[in]argcRedis command argument count.
[in]argvRedis command arguments.
Returns
  • 0 success.
  • -1 normal failure.
  • -2 failure that may leave the connection in a READONLY state.

Definition at line 72 of file rlm_redis.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ssize_t redis_xlat ( char **  out,
size_t  outlen,
void const *  mod_inst,
UNUSED void const *  xlat_inst,
REQUEST request,
char const *  fmt 
)
static

Definition at line 145 of file rlm_redis.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

CONF_PARSER module_config[]
static
Initial value:
= {
}
#define CONF_PARSER_TERMINATOR
Definition: conffile.h:289
#define REDIS_COMMON_CONFIG
Definition: redis.h:106

Definition at line 42 of file rlm_redis.c.

module_t rlm_redis
Initial value:
= {
.magic = RLM_MODULE_INIT,
.name = "redis",
.inst_size = sizeof(rlm_redis_t),
.config = module_config,
.bootstrap = mod_bootstrap,
.instantiate = mod_instantiate,
}
#define RLM_TYPE_THREAD_SAFE
Module is threadsafe.
Definition: modules.h:75
#define RLM_MODULE_INIT
Definition: modules.h:86
struct rlm_redis_t rlm_redis_t
rlm_redis module instance
static CONF_PARSER module_config[]
Definition: rlm_redis.c:42
static int mod_instantiate(CONF_SECTION *conf, void *instance)
Definition: rlm_redis.c:334
static int mod_bootstrap(CONF_SECTION *conf, void *instance)
Definition: rlm_redis.c:319

Definition at line 345 of file rlm_redis.c.