X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=inline;f=lib%2Fmemcached_behavior.c;h=2a2ef5cd9bfc4eea4302cf9115ab1da2a53bdb10;hb=0d688cec9e53a2ed8e3f3817da9aecdd41d342ca;hp=8c02a383d7e6b9abe313983d61f643cfcc3a4425;hpb=80592e910024f5f16caaf87f71ed51c4eb518c74;p=awesomized%2Flibmemcached diff --git a/lib/memcached_behavior.c b/lib/memcached_behavior.c index 8c02a383..2a2ef5cd 100644 --- a/lib/memcached_behavior.c +++ b/lib/memcached_behavior.c @@ -30,6 +30,16 @@ memcached_return memcached_behavior_set(memcached_st *ptr, { switch (flag) { + case MEMCACHED_BEHAVIOR_REPLICAS: + { + uint8_t number_of_replicas= (uint8_t)data; + + if (number_of_replicas > ptr->number_of_hosts || number_of_replicas == 0 || number_of_replicas > MEMCACHED_MAX_REPLICAS) + return MEMCACHED_FAILURE; + else + ptr->number_of_replicas= number_of_replicas; + break; + } case MEMCACHED_BEHAVIOR_SUPPORT_CAS: set_behavior_flag(ptr, MEM_SUPPORT_CAS, data); break; @@ -73,6 +83,13 @@ memcached_return memcached_behavior_set(memcached_st *ptr, ptr->poll_timeout= timeout; break; } + case MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT: + { + int32_t timeout= (*((int32_t *)data)); + + ptr->connect_timeout= timeout; + break; + } case MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE: { ptr->send_size= (*((int *)data)); @@ -99,6 +116,8 @@ unsigned long long memcached_behavior_get(memcached_st *ptr, switch (flag) { + case MEMCACHED_BEHAVIOR_REPLICAS: + return (unsigned long long)ptr->number_of_replicas; case MEMCACHED_BEHAVIOR_SUPPORT_CAS: temp_flag= MEM_SUPPORT_CAS; break; @@ -133,6 +152,10 @@ unsigned long long memcached_behavior_get(memcached_st *ptr, { return (unsigned long long)ptr->poll_timeout; } + case MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT: + { + return (unsigned long long)ptr->connect_timeout; + } case MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE: { int sock_size;