mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
ACL: show categories in COMMAND reply
Adding another new filed categories at the end of command reply, it's easy to read and distinguish flags and categories, also compatible with old format.
This commit is contained in:
parent
a65094dae8
commit
14507457a0
12
src/acl.c
12
src/acl.c
@ -1480,3 +1480,15 @@ NULL
|
||||
addReplySubcommandSyntaxError(c);
|
||||
}
|
||||
}
|
||||
|
||||
void addReplyCommandCategories(client *c, struct redisCommand *cmd) {
|
||||
int flagcount = 0;
|
||||
void *flaglen = addReplyDeferredLen(c);
|
||||
for (int j = 0; ACLCommandCategories[j].flag != 0; j++) {
|
||||
if (cmd->flags & ACLCommandCategories[j].flag) {
|
||||
addReplyStatusFormat(c, "@%s", ACLCommandCategories[j].name);
|
||||
flagcount++;
|
||||
}
|
||||
}
|
||||
setDeferredSetLen(c, flaglen, flagcount);
|
||||
}
|
||||
|
@ -3698,8 +3698,8 @@ void addReplyCommand(client *c, struct redisCommand *cmd) {
|
||||
if (!cmd) {
|
||||
addReplyNull(c);
|
||||
} else {
|
||||
/* We are adding: command name, arg count, flags, first, last, offset */
|
||||
addReplyArrayLen(c, 6);
|
||||
/* We are adding: command name, arg count, flags, first, last, offset, categories */
|
||||
addReplyArrayLen(c, 7);
|
||||
addReplyBulkCString(c, cmd->name);
|
||||
addReplyLongLong(c, cmd->arity);
|
||||
|
||||
@ -3729,6 +3729,8 @@ void addReplyCommand(client *c, struct redisCommand *cmd) {
|
||||
addReplyLongLong(c, cmd->firstkey);
|
||||
addReplyLongLong(c, cmd->lastkey);
|
||||
addReplyLongLong(c, cmd->keystep);
|
||||
|
||||
addReplyCommandCategories(c,cmd);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1748,6 +1748,7 @@ char *ACLSetUserStringError(void);
|
||||
int ACLLoadConfiguredUsers(void);
|
||||
sds ACLDescribeUser(user *u);
|
||||
void ACLLoadUsersAtStartup(void);
|
||||
void addReplyCommandCategories(client *c, struct redisCommand *cmd);
|
||||
|
||||
/* Sorted sets data type */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user