summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Benoish <guy.benoish@redislabs.com>2020-03-18 18:34:27 +0530
committerGuy Benoish <guy.benoish@redislabs.com>2020-03-18 18:34:27 +0530
commitf16eaadd4ff4ebebc5661e5570301ab0c31bf1f6 (patch)
tree7bc7236f4731854fae5210cbd5cd6366b07e8bea
parentf88f8661ac29c054cffb795e6c371fbb2240aa0e (diff)
downloadredis-f16eaadd4ff4ebebc5661e5570301ab0c31bf1f6.tar.gz
Allow RM_GetContextFlags to work with ctx==NULL
-rw-r--r--src/module.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/module.c b/src/module.c
index bbd54082c..a5f4219fd 100644
--- a/src/module.c
+++ b/src/module.c
@@ -1848,20 +1848,22 @@ int RM_GetContextFlags(RedisModuleCtx *ctx) {
int flags = 0;
/* Client specific flags */
- if (ctx->client) {
- if (ctx->client->flags & CLIENT_LUA)
- flags |= REDISMODULE_CTX_FLAGS_LUA;
- if (ctx->client->flags & CLIENT_MULTI)
- flags |= REDISMODULE_CTX_FLAGS_MULTI;
- /* Module command recieved from MASTER, is replicated. */
- if (ctx->client->flags & CLIENT_MASTER)
- flags |= REDISMODULE_CTX_FLAGS_REPLICATED;
- }
-
- /* For DIRTY flags, we need the blocked client if used */
- client *c = ctx->blocked_client ? ctx->blocked_client->client : ctx->client;
- if (c && (c->flags & (CLIENT_DIRTY_CAS|CLIENT_DIRTY_EXEC))) {
- flags |= REDISMODULE_CTX_FLAGS_MULTI_DIRTY;
+ if (ctx) {
+ if (ctx->client) {
+ if (ctx->client->flags & CLIENT_LUA)
+ flags |= REDISMODULE_CTX_FLAGS_LUA;
+ if (ctx->client->flags & CLIENT_MULTI)
+ flags |= REDISMODULE_CTX_FLAGS_MULTI;
+ /* Module command recieved from MASTER, is replicated. */
+ if (ctx->client->flags & CLIENT_MASTER)
+ flags |= REDISMODULE_CTX_FLAGS_REPLICATED;
+ }
+
+ /* For DIRTY flags, we need the blocked client if used */
+ client *c = ctx->blocked_client ? ctx->blocked_client->client : ctx->client;
+ if (c && (c->flags & (CLIENT_DIRTY_CAS|CLIENT_DIRTY_EXEC))) {
+ flags |= REDISMODULE_CTX_FLAGS_MULTI_DIRTY;
+ }
}
if (server.cluster_enabled)