+ new_clone->allocators= source->allocators;
+
+ new_clone->get_key_failure= source->get_key_failure;
+ new_clone->delete_trigger= source->delete_trigger;
+ new_clone->server_failure_limit= source->server_failure_limit;
+ new_clone->io_msg_watermark= source->io_msg_watermark;
+ new_clone->io_bytes_watermark= source->io_bytes_watermark;
+ new_clone->io_key_prefetch= source->io_key_prefetch;
+ new_clone->number_of_replicas= source->number_of_replicas;
+ new_clone->tcp_keepidle= source->tcp_keepidle;
+
+ if (memcached_server_count(source))
+ rc= memcached_push(new_clone, source);
+
+ if (rc != MEMCACHED_SUCCESS)
+ {
+ memcached_free(new_clone);
+
+ return NULL;
+ }
+
+
+ if (source->prefix_key_length)
+ {
+ strcpy(new_clone->prefix_key, source->prefix_key);
+ new_clone->prefix_key_length= source->prefix_key_length;
+ }
+
+#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT
+ if (source->sasl.callbacks)
+ {
+ if (memcached_clone_sasl(new_clone, source) != MEMCACHED_SUCCESS)
+ {
+ memcached_free(new_clone);
+ return NULL;
+ }
+ }
+#endif