libmemcached: fix #35 (handling of MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS)
[awesomized/libmemcached] / libmemcached / behavior.cc
index 081f8082f1ad89b1ef45160fe7e02b5b249188b3..7536248e214f2db040a83444b5a7276691d3209c 100644 (file)
@@ -106,6 +106,7 @@ memcached_return_t memcached_behavior_set(memcached_st *shell,
 
   case MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS:
     ptr->flags.auto_eject_hosts= bool(data);
+    break;
 
   case MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT:
     if (data == 0)
@@ -116,6 +117,10 @@ memcached_return_t memcached_behavior_set(memcached_st *shell,
     ptr->server_failure_limit= uint32_t(data);
     break;
 
+  case MEMCACHED_BEHAVIOR_SERVER_TIMEOUT_LIMIT:
+    ptr->server_timeout_limit= uint32_t(data);
+    break;
+
   case MEMCACHED_BEHAVIOR_BINARY_PROTOCOL:
     send_quit(ptr); // We need t shutdown all of the connections to make sure we do the correct protocol
     if (data)
@@ -371,9 +376,14 @@ uint64_t memcached_behavior_get(memcached_st *shell,
     return hashkit_get_function(&ptr->hashkit);
 
   case MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS:
+    return ptr->flags.auto_eject_hosts;
+
   case MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT:
     return ptr->server_failure_limit;
 
+  case MEMCACHED_BEHAVIOR_SERVER_TIMEOUT_LIMIT:
+    return ptr->server_timeout_limit;
+
   case MEMCACHED_BEHAVIOR_SORT_HOSTS:
     return ptr->flags.use_sort_hosts;
 
@@ -623,6 +633,7 @@ const char *libmemcached_string_behavior(const memcached_behavior_t flag)
 {
   switch (flag)
   {
+  case MEMCACHED_BEHAVIOR_SERVER_TIMEOUT_LIMIT: return "MEMCACHED_BEHAVIOR_SERVER_TIMEOUT_LIMIT";
   case MEMCACHED_BEHAVIOR_NO_BLOCK: return "MEMCACHED_BEHAVIOR_NO_BLOCK";
   case MEMCACHED_BEHAVIOR_TCP_NODELAY: return "MEMCACHED_BEHAVIOR_TCP_NODELAY";
   case MEMCACHED_BEHAVIOR_HASH: return "MEMCACHED_BEHAVIOR_HASH";