memoryGetKeys helper function so that ACL can limit access to keys for MEMORY command
This commit is contained in:
parent
cfe39b7859
commit
9ac6cb9ce4
16
src/db.c
16
src/db.c
@ -1522,6 +1522,22 @@ int *georadiusGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numk
|
|||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Helper function to extract keys from memory command.
|
||||||
|
* MEMORY USAGE <key> */
|
||||||
|
int *memoryGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys) {
|
||||||
|
int *keys;
|
||||||
|
UNUSED(cmd);
|
||||||
|
|
||||||
|
if (argc >= 3 && !strcasecmp(argv[1]->ptr,"usage")) {
|
||||||
|
keys = zmalloc(sizeof(int) * 1);
|
||||||
|
keys[0] = 2;
|
||||||
|
*numkeys = 1;
|
||||||
|
return keys;
|
||||||
|
}
|
||||||
|
*numkeys = 0;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* XREAD [BLOCK <milliseconds>] [COUNT <count>] [GROUP <groupname> <ttl>]
|
/* XREAD [BLOCK <milliseconds>] [COUNT <count>] [GROUP <groupname> <ttl>]
|
||||||
* STREAMS key_1 key_2 ... key_N ID_1 ID_2 ... ID_N */
|
* STREAMS key_1 key_2 ... key_N ID_1 ID_2 ... ID_N */
|
||||||
int *xreadGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys) {
|
int *xreadGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys) {
|
||||||
|
@ -817,7 +817,7 @@ struct redisCommand redisCommandTable[] = {
|
|||||||
|
|
||||||
{"memory",memoryCommand,-2,
|
{"memory",memoryCommand,-2,
|
||||||
"random read-only",
|
"random read-only",
|
||||||
0,NULL,0,0,0,0,0,0},
|
0,memoryGetKeys,0,0,0,0,0,0},
|
||||||
|
|
||||||
{"client",clientCommand,-2,
|
{"client",clientCommand,-2,
|
||||||
"admin no-script random @connection",
|
"admin no-script random @connection",
|
||||||
|
@ -2074,6 +2074,7 @@ int *sortGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
|||||||
int *migrateGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
int *migrateGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
||||||
int *georadiusGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
int *georadiusGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
||||||
int *xreadGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
int *xreadGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
||||||
|
int *memoryGetKeys(struct redisCommand *cmd, robj **argv, int argc, int *numkeys);
|
||||||
|
|
||||||
/* Cluster */
|
/* Cluster */
|
||||||
void clusterInit(void);
|
void clusterInit(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user