projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Bad data for threads (Toru patch)
[m6w6/libmemcached]
/
libmemcached
/
memcached_behavior.c
diff --git
a/libmemcached/memcached_behavior.c
b/libmemcached/memcached_behavior.c
index 351b87cd90be859b25ff73ddd1e24663ed3b6075..e89473cff8997d6f19d40110c9604398143373c4 100644
(file)
--- a/
libmemcached/memcached_behavior.c
+++ b/
libmemcached/memcached_behavior.c
@@
-43,6
+43,21
@@
memcached_return memcached_behavior_set(memcached_st *ptr,
run_distribution(ptr);
break;
}
run_distribution(ptr);
break;
}
+ case MEMCACHED_BEHAVIOR_KETAMA:
+ {
+ if (data)
+ {
+ ptr->hash= MEMCACHED_HASH_MD5;
+ ptr->distribution= MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA;
+ }
+ else
+ {
+ ptr->hash= 0;
+ ptr->distribution= 0;
+ }
+ run_distribution(ptr);
+ break;
+ }
case MEMCACHED_BEHAVIOR_HASH:
ptr->hash= (memcached_hash)(data);
break;
case MEMCACHED_BEHAVIOR_HASH:
ptr->hash= (memcached_hash)(data);
break;
@@
-53,9
+68,6
@@
memcached_return memcached_behavior_set(memcached_st *ptr,
case MEMCACHED_BEHAVIOR_VERIFY_KEY:
set_behavior_flag(ptr, MEM_VERIFY_KEY, data);
break;
case MEMCACHED_BEHAVIOR_VERIFY_KEY:
set_behavior_flag(ptr, MEM_VERIFY_KEY, data);
break;
- case MEMCACHED_BEHAVIOR_KETAMA:
- set_behavior_flag(ptr, MEM_USE_KETAMA, data);
- break;
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
{
set_behavior_flag(ptr, MEM_USE_SORT_HOSTS, data);
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
{
set_behavior_flag(ptr, MEM_USE_SORT_HOSTS, data);
@@
-114,11
+126,10
@@
uint64_t memcached_behavior_get(memcached_st *ptr,
break;
case MEMCACHED_BEHAVIOR_DISTRIBUTION:
return ptr->distribution;
break;
case MEMCACHED_BEHAVIOR_DISTRIBUTION:
return ptr->distribution;
+ case MEMCACHED_BEHAVIOR_KETAMA:
+ return (ptr->distribution == MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA && ptr->hash == MEMCACHED_HASH_MD5 ) ? 1 : 0;
case MEMCACHED_BEHAVIOR_HASH:
return ptr->hash;
case MEMCACHED_BEHAVIOR_HASH:
return ptr->hash;
- case MEMCACHED_BEHAVIOR_KETAMA:
- temp_flag= MEM_USE_KETAMA;
- break;
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
temp_flag= MEM_USE_SORT_HOSTS;
break;
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
temp_flag= MEM_USE_SORT_HOSTS;
break;