diff options
author | Pavlo Yatsukhnenko <yatsukhnenko@users.noreply.github.com> | 2020-05-19 04:11:40 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-19 04:11:40 +0300 |
commit | e80600e244b8442cb7c86e99b067966cd59bf2ee (patch) | |
tree | eb6f7a91da7ad74602e1812267514c66287d460b /redis_commands.c | |
parent | 508fef6f18c8ee7e57ff6fc45697248c0bd72709 (diff) |
Issue #548 (#1649)
Adds `Redis::SCAN_PREFIX` and `Redis::SCAN_NOPREFIX` as options to SCAN.
See #548
Diffstat (limited to 'redis_commands.c')
-rw-r--r-- | redis_commands.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/redis_commands.c b/redis_commands.c index 6945ed4b..e7cca1a8 100644 --- a/redis_commands.c +++ b/redis_commands.c @@ -4032,11 +4032,16 @@ void redis_setoption_handler(INTERNAL_FUNCTION_PARAMETERS, RETURN_TRUE; case REDIS_OPT_SCAN: val_long = zval_get_long(val); - if (val_long==REDIS_SCAN_NORETRY || val_long==REDIS_SCAN_RETRY) { - redis_sock->scan = val_long; - RETURN_TRUE; + if (val_long == REDIS_SCAN_NORETRY) { + redis_sock->scan &= ~REDIS_SCAN_RETRY; + } else if (val_long == REDIS_SCAN_NOPREFIX) { + redis_sock->scan &= ~REDIS_SCAN_PREFIX; + } else if (val_long == REDIS_SCAN_RETRY || val_long == REDIS_SCAN_PREFIX) { + redis_sock->scan |= val_long; + } else { + break; } - break; + RETURN_TRUE; case REDIS_OPT_FAILOVER: val_long = zval_get_long(val); if (val_long == REDIS_FAILOVER_NONE || |