projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
MEMCACHED_CALLBACK_PREFIX_KEY added (so domaining keys is now aailable in
[m6w6/libmemcached]
/
libmemcached
/
memcached.c
diff --git
a/libmemcached/memcached.c
b/libmemcached/memcached.c
index 33a80bab29693982e49ae0210b3fc08f18694095..74e75706875451277f9971a9a163d97155a54d8e 100644
(file)
--- a/
libmemcached/memcached.c
+++ b/
libmemcached/memcached.c
@@
-41,6
+41,22
@@
void memcached_free(memcached_st *ptr)
if (ptr->on_cleanup)
ptr->on_cleanup(ptr);
if (ptr->on_cleanup)
ptr->on_cleanup(ptr);
+ if (ptr->continuum)
+ {
+ if (ptr->call_free)
+ ptr->call_free(ptr, ptr->continuum);
+ else
+ free(ptr->continuum);
+ }
+
+ if (ptr->wheel)
+ {
+ if (ptr->call_free)
+ ptr->call_free(ptr, ptr->wheel);
+ else
+ free(ptr->wheel);
+ }
+
if (ptr->is_allocated == MEMCACHED_ALLOCATED)
{
if (ptr->call_free)
if (ptr->is_allocated == MEMCACHED_ALLOCATED)
{
if (ptr->call_free)
@@
-105,6
+121,17
@@
memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr)
new_clone->get_key_failure= ptr->get_key_failure;
new_clone->delete_trigger= ptr->delete_trigger;
new_clone->get_key_failure= ptr->get_key_failure;
new_clone->delete_trigger= ptr->delete_trigger;
+ if (ptr->prefix_key[0] != 0)
+ strcpy(new_clone->prefix_key, ptr->prefix_key);
+
+ rc= run_distribution(new_clone);
+ if (rc != MEMCACHED_SUCCESS)
+ {
+ memcached_free(new_clone);
+
+ return NULL;
+ }
+
if (ptr->on_clone)
ptr->on_clone(ptr, new_clone);
if (ptr->on_clone)
ptr->on_clone(ptr, new_clone);