for (x= 0; x < servers->count; x++)
if (servers[x].address_info)
+ {
freeaddrinfo(servers[x].address_info);
+ servers[x].address_info= NULL;
+ }
if (ptr && ptr->call_free)
ptr->call_free(ptr, servers);
return -1;
}
-static uint32_t internal_generate_ketama_md5(char *key, size_t key_length)
-{
- unsigned char results[16];
-
- md5_signature((unsigned char*)key, (unsigned int)key_length, results);
-
- return ( (results[3] ) << 24)
- | ( (results[2] ) << 16)
- | ( (results[1] ) << 8)
- | ( results[0] );
-}
-
memcached_return update_continuum(memcached_st *ptr)
{
uint32_t index;
sort_host_length= snprintf(sort_host, MEMCACHED_MAX_HOST_SORT_LENGTH, "%s:%d-%d",
list[host_index].hostname, list[host_index].port, index);
WATCHPOINT_ASSERT(sort_host_length);
- value= internal_generate_ketama_md5(sort_host, sort_host_length);
+ value= generate_hash(ptr, sort_host, sort_host_length);
ptr->continuum[continuum_index].index= host_index;
ptr->continuum[continuum_index++].value= value;
}
sizeof(memcached_server_st) * (count + ptr->number_of_hosts));
if (!new_host_list)
+ {
+ assert(0);
return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
+ }
ptr->hosts= new_host_list;