Fixed retry counter wrongly incremented in case of certain behavior change
[awesomized/libmemcached] / libmemcached / memcached_server.c
index 2359611e0f73d2b490904017fea54aab7a14456c..7b9c2117bff972b893f17eca23e1d0ae05b4aaf9 100644 (file)
@@ -54,16 +54,10 @@ void memcached_server_free(memcached_server_st *ptr)
   memcached_quit_server(ptr, 0);
 
   if (ptr->cached_server_error)
-  {
     free(ptr->cached_server_error);
-    ptr->cached_server_error= NULL;
-  }
 
   if (ptr->address_info)
-  {
     freeaddrinfo(ptr->address_info);
-    ptr->address_info= NULL;
-  }
 
   if (ptr->is_allocated)
     ptr->root->call_free(ptr->root, ptr);
@@ -76,7 +70,7 @@ void memcached_server_free(memcached_server_st *ptr)
 */
 memcached_server_st *memcached_server_clone(memcached_server_st *clone, memcached_server_st *ptr)
 {
-  memcached_server_st *rv = NULL;
+  memcached_server_st *rv= NULL;
 
   /* We just do a normal create if ptr is missing */
   if (ptr == NULL)
@@ -136,7 +130,7 @@ memcached_server_st *memcached_server_by_key(memcached_st *ptr,  const char *key
     return NULL;
   }
 
-  if ((ptr->flags & MEM_VERIFY_KEY) && (memcached_key_test((char **)&key, &key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED))
+  if ((ptr->flags & MEM_VERIFY_KEY) && (memcached_key_test((const char **)&key, &key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED))
   {
     *error= MEMCACHED_BAD_KEY_PROVIDED;
     return NULL;
@@ -147,3 +141,16 @@ memcached_server_st *memcached_server_by_key(memcached_st *ptr,  const char *key
   return memcached_server_clone(NULL, &ptr->hosts[server_key]);
 
 }
+
+const char *memcached_server_error(memcached_server_st *ptr)
+{
+  if (ptr)
+    return ptr->cached_server_error;
+  else 
+    return NULL;
+}
+
+void memcached_server_error_reset(memcached_server_st *ptr)
+{
+  ptr->cached_server_error[0]= 0;
+}