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:
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 ||