Skip to content

Commit 52a2cbe

Browse files
committed
MOD: don't re-set the libmemcached option if not modified
libmemcached would close all connections if the option(like MEMCACHED_BEHAVIOR_BINARY_PROTOCOL) was set, even though value wasn't modified.
1 parent d7daff6 commit 52a2cbe

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

php_memcached.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3111,6 +3111,11 @@ int php_memc_set_option(php_memc_object_t *intern, long option, zval *value)
31113111
lval = zval_get_long(value);
31123112

31133113
if (flag < MEMCACHED_BEHAVIOR_MAX) {
3114+
// do set the option when the option value wasn't modified,
3115+
// while libmemcached may shutdown all the connection.
3116+
if (memcached_behavior_get(intern->memc,flag) == (uint64_t)lval) {
3117+
return 1;
3118+
}
31143119
rc = memcached_behavior_set(intern->memc, flag, (uint64_t)lval);
31153120
}
31163121
else {

0 commit comments

Comments
 (0)