ACL: initialization function.

This commit is contained in:
antirez 2019-01-10 16:39:32 +01:00
parent e9a902a958
commit 29c88a9ce5
3 changed files with 13 additions and 0 deletions

View File

@ -29,6 +29,12 @@
#include "server.h" #include "server.h"
/* =============================================================================
* Global state for ACLs
* ==========================================================================*/
rax *Users; /* Table mapping usernames to user structures. */
/* ============================================================================= /* =============================================================================
* Helper functions for the rest of the ACL implementation * Helper functions for the rest of the ACL implementation
* ==========================================================================*/ * ==========================================================================*/
@ -79,6 +85,11 @@ int time_independent_strcmp(char *a, char *b) {
* Low level ACL API * Low level ACL API
* ==========================================================================*/ * ==========================================================================*/
/* Initialization of the ACL subsystem. */
void ACLInit(void) {
Users = raxNew();
}
/* Check the username and password pair and return C_OK if they are valid, /* Check the username and password pair and return C_OK if they are valid,
* otherwise C_ERR is returned and errno is set to: * otherwise C_ERR is returned and errno is set to:
* *

View File

@ -2185,6 +2185,7 @@ void initServer(void) {
if (server.cluster_enabled) clusterInit(); if (server.cluster_enabled) clusterInit();
replicationScriptCacheInit(); replicationScriptCacheInit();
scriptingInit(1); scriptingInit(1);
ACLInit();
slowlogInit(); slowlogInit();
latencyMonitorInit(); latencyMonitorInit();
bioInit(); bioInit();

View File

@ -1682,6 +1682,7 @@ void sendChildInfo(int process_type);
void receiveChildInfo(void); void receiveChildInfo(void);
/* acl.c -- Authentication related prototypes. */ /* acl.c -- Authentication related prototypes. */
void ACLInit(void);
int ACLCheckUserCredentials(robj *username, robj *password); int ACLCheckUserCredentials(robj *username, robj *password);
unsigned long ACLGetCommandID(const char *cmdname); unsigned long ACLGetCommandID(const char *cmdname);
user *ACLGetUserByName(const char *name, size_t namelen); user *ACLGetUserByName(const char *name, size_t namelen);