Merged from build.
[m6w6/libmemcached] / libmemcached / hosts.c
index a5649a6df4e2d4d16cce2942ae97317e6cf6ddfa..27a86a7b4197ded4afafc1b0a44f9b355a13ebd5 100644 (file)
@@ -36,6 +36,9 @@ static void sort_hosts(memcached_st *ptr)
 
 memcached_return_t run_distribution(memcached_st *ptr)
 {
+  if (ptr->flags.use_sort_hosts)
+    sort_hosts(ptr);
+
   switch (ptr->distribution)
   {
   case MEMCACHED_DISTRIBUTION_CONSISTENT:
@@ -43,8 +46,6 @@ memcached_return_t run_distribution(memcached_st *ptr)
   case MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY:
     return update_continuum(ptr);
   case MEMCACHED_DISTRIBUTION_MODULA:
-    if (ptr->flags.use_sort_hosts)
-      sort_hosts(ptr);
     break;
   case MEMCACHED_DISTRIBUTION_RANDOM:
     srandom((uint32_t) time(NULL));
@@ -215,9 +216,9 @@ memcached_return_t update_continuum(memcached_st *ptr)
         // Spymemcached ketema key format is: hostname/ip:port-index
         // If hostname is not available then: /ip:port-index
         sort_host_length= (size_t) snprintf(sort_host, MEMCACHED_MAX_HOST_SORT_LENGTH,
-                                            "/%s:%d-%d",
+                                            "/%s:%u-%u",
                                             list[host_index].hostname,
-                                            list[host_index].port,
+                                            (uint32_t)list[host_index].port,
                                             pointer_index);
 #ifdef DEBUG
         printf("update_continuum: key is %s\n", sort_host);