Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Yatsukhnenko <yatsukhnenko@users.noreply.github.com>2020-05-19 04:11:40 +0300
committerGitHub <noreply@github.com>2020-05-19 04:11:40 +0300
commite80600e244b8442cb7c86e99b067966cd59bf2ee (patch)
treeeb6f7a91da7ad74602e1812267514c66287d460b /redis_commands.c
parent508fef6f18c8ee7e57ff6fc45697248c0bd72709 (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.c13
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 ||