X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fbehavior.cc;h=33926c83236a50f7a97d8cf2341bb806de99a4a7;hb=14ed08eb76405aed0747568326058ab57c5e69a2;hp=e8bcf857c0bbbfdb013fa925283196888daebec4;hpb=674c7578fa870c3b57e81e765c355ce98434b310;p=m6w6%2Flibmemcached diff --git a/libmemcached/behavior.cc b/libmemcached/behavior.cc index e8bcf857..33926c83 100644 --- a/libmemcached/behavior.cc +++ b/libmemcached/behavior.cc @@ -42,9 +42,9 @@ #include #include -static bool __is_ketama(memcached_st *ptr) +bool memcached_is_consistent_distribution(const memcached_st* memc) { - switch (ptr->distribution) + switch (memc->distribution) { case MEMCACHED_DISTRIBUTION_CONSISTENT: case MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA: @@ -355,9 +355,9 @@ uint64_t memcached_behavior_get(memcached_st *ptr, return ptr->flags.verify_key; case MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED: - if (__is_ketama(ptr)) + if (memcached_is_consistent_distribution(ptr)) { - return ptr->ketama.weighted; + return memcached_is_weighted_ketama(ptr); } return false; @@ -365,7 +365,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr, return ptr->distribution; case MEMCACHED_BEHAVIOR_KETAMA: - return __is_ketama(ptr); + return memcached_is_consistent_distribution(ptr); case MEMCACHED_BEHAVIOR_HASH: return hashkit_get_function(&ptr->hashkit); @@ -427,7 +427,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr, return 0; } - if (getsockopt(instance->fd, SOL_SOCKET, SO_SNDBUF, &sock_size, &sock_length) < 0) + if (getsockopt(instance->fd, SOL_SOCKET, SO_SNDBUF, (char*)&sock_size, &sock_length) < 0) { memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT); return 0; /* Zero means error */ @@ -463,7 +463,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr, return 0; } - if (getsockopt(instance->fd, SOL_SOCKET, SO_RCVBUF, &sock_size, &sock_length) < 0) + if (getsockopt(instance->fd, SOL_SOCKET, SO_RCVBUF, (char*)&sock_size, &sock_length) < 0) { memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT); return 0; /* Zero means error */ @@ -505,7 +505,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr, case MEMCACHED_BEHAVIOR_MAX: default: - assert_msg(0, "Invalid behavior passed to memcached_behavior_set()"); + assert_msg(0, "Invalid behavior passed to memcached_behavior_get()"); return 0; } @@ -522,7 +522,7 @@ memcached_return_t memcached_behavior_set_distribution(memcached_st *ptr, memcac case MEMCACHED_DISTRIBUTION_CONSISTENT: case MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA: - ptr->ketama.weighted= false; + memcached_set_weighted_ketama(ptr, false); break; case MEMCACHED_DISTRIBUTION_RANDOM: @@ -532,7 +532,7 @@ memcached_return_t memcached_behavior_set_distribution(memcached_st *ptr, memcac break; case MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED: - ptr->ketama.weighted= true; + memcached_set_weighted_ketama(ptr, true); break; case MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKET: