return dispatch_host(ptr, _generate_hash_wrapper(ptr, key, key_length));
}
-hashkit_st *memcached_get_hashkit(memcached_st *ptr)
+const hashkit_st *memcached_get_hashkit(const memcached_st *ptr)
{
return &ptr->hashkit;
}
+
+memcached_return_t memcached_set_hashkit(memcached_st *self, hashkit_st *hashk)
+{
+ hashkit_free(&self->hashkit);
+ hashkit_clone(&self->hashkit, hashk);
+
+ return MEMCACHED_SUCCESS;
+}
uint32_t memcached_generate_hash_value(const char *key, size_t key_length, memcached_hash_t hash_algorithm);
LIBMEMCACHED_API
-hashkit_st *memcached_get_hashkit(memcached_st *ptr);
+const hashkit_st *memcached_get_hashkit(const memcached_st *ptr);
+
+LIBMEMCACHED_API
+memcached_return_t memcached_set_hashkit(memcached_st *ptr, hashkit_st *hashk);
LIBMEMCACHED_API
uint32_t memcached_generate_hash(const memcached_st *ptr, const char *key, size_t key_length);
{
uint32_t x;
const char **ptr;
- hashkit_st *kit;
+ const hashkit_st *kit;
+ hashkit_st new_kit;
hashkit_return_t hash_rc;
uint32_t md5_hosts[]= {4U, 1U, 0U, 1U, 4U, 2U, 0U, 3U, 0U, 0U, 3U, 1U, 0U, 0U, 1U, 3U, 0U, 0U, 0U, 3U, 1U, 0U, 4U, 4U, 3U};
kit= memcached_get_hashkit(memc);
- hash_rc= hashkit_set_custom_function(kit, hash_md5_test_function, NULL);
+ hashkit_clone(&new_kit, kit);
+ hash_rc= hashkit_set_custom_function(&new_kit, hash_md5_test_function, NULL);
test_true(hash_rc == HASHKIT_SUCCESS);
+ memcached_set_hashkit(memc, &new_kit);
+
/*
Verify Setting the hash.
*/
test_true(md5_hosts[x] == hash_val);
}
- hash_rc= hashkit_set_custom_function(kit, hash_crc_test_function, NULL);
+ hash_rc= hashkit_set_custom_function(&new_kit, hash_crc_test_function, NULL);
test_true(hash_rc == HASHKIT_SUCCESS);
+ memcached_set_hashkit(memc, &new_kit);
+
/*
Verify Setting the hash.
*/