X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_hash.c;h=ca7229c2cd89880945afe49622c65e9974017f6a;hb=7add2cb42be7d072888ab916eb35cdef8a2774a1;hp=cb3d5218391037f052061bbfc64f2c552fb58277;hpb=d3ef73cd144dfdbcaff41d3373e4458fb351f7af;p=awesomized%2Flibmemcached diff --git a/lib/memcached_hash.c b/lib/memcached_hash.c index cb3d5218..ca7229c2 100644 --- a/lib/memcached_hash.c +++ b/lib/memcached_hash.c @@ -5,7 +5,7 @@ static unsigned int internal_generate_hash(char *key, size_t key_length); unsigned int memcached_generate_hash(memcached_st *ptr, char *key, size_t key_length) { - unsigned int return_value; + unsigned int hash; if (ptr->flags & MEM_USE_MD5) { @@ -13,15 +13,18 @@ unsigned int memcached_generate_hash(memcached_st *ptr, char *key, size_t key_le md5_signature((unsigned char*)key, (unsigned int)key_length, results); - return_value= (unsigned int)(( results[3] << 24 ) + hash= (unsigned int)(( results[3] << 24 ) | ( results[2] << 16 ) | ( results[1] << 8 ) | results[0] ); } else - return_value= internal_generate_hash(key, key_length); + hash= internal_generate_hash(key, key_length); - return return_value % ptr->number_of_hosts; + if (ptr->flags & MEM_USE_KETAMA) + assert(0); + else + return hash % ptr->number_of_hosts; } static unsigned int internal_generate_hash(char *key, size_t key_length)