summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2020-04-03 11:14:13 +0200
committerGitHub <noreply@github.com>2020-04-03 11:14:13 +0200
commitcbf212f981607dcef8534813363ba723b0560b9b (patch)
treed47110cc4b03cee10d94fff0ad90eec9ef89bbc2 /src
parent4158664d2bad1dbc7008db4cb4bf1c4e1944cfc4 (diff)
parent9a1843ef2df09edcc28f4f1b2ace93a39d35cc59 (diff)
downloadredis-cbf212f981607dcef8534813363ba723b0560b9b.tar.gz
Merge pull request #7030 from valentinogeron/xread-in-lua
XREAD and XREADGROUP should not be allowed from scripts when BLOCK op…
Diffstat (limited to 'src')
-rw-r--r--src/server.c4
-rw-r--r--src/t_stream.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/server.c b/src/server.c
index ff7a39df5..9ebf0ee6b 100644
--- a/src/server.c
+++ b/src/server.c
@@ -947,11 +947,11 @@ struct redisCommand redisCommandTable[] = {
0,NULL,1,1,1,0,0,0},
{"xread",xreadCommand,-4,
- "read-only no-script @stream @blocking",
+ "read-only @stream @blocking",
0,xreadGetKeys,1,1,1,0,0,0},
{"xreadgroup",xreadCommand,-7,
- "write no-script @stream @blocking",
+ "write @stream @blocking",
0,xreadGetKeys,1,1,1,0,0,0},
{"xgroup",xgroupCommand,-2,
diff --git a/src/t_stream.c b/src/t_stream.c
index 3f8cbfcfa..e0af87f97 100644
--- a/src/t_stream.c
+++ b/src/t_stream.c
@@ -1374,6 +1374,11 @@ void xreadCommand(client *c) {
int moreargs = c->argc-i-1;
char *o = c->argv[i]->ptr;
if (!strcasecmp(o,"BLOCK") && moreargs) {
+ if (c->flags & CLIENT_LUA) {
+ /* There is no sense to use BLOCK option within LUA */
+ addReplyErrorFormat(c, "%s command is not allowed with BLOCK option from scripts", (char *)c->argv[0]->ptr);
+ return;
+ }
i++;
if (getTimeoutFromObjectOrReply(c,c->argv[i],&timeout,
UNIT_MILLISECONDS) != C_OK) return;