Merge in solution for lp:581030.
[m6w6/libmemcached] / libmemcached / stats.c
index ab005f49bb578a70e81fe0aead6e672a3fd12daf..ebbc63ab9b8ba05be502160ccfb82886e3f5052b 100644 (file)
@@ -162,7 +162,8 @@ static memcached_return_t set_data(memcached_stat_st *memc_stat, char *key, char
              strcmp("reclaimed", key) == 0))
   {
     WATCHPOINT_STRING(key);
-    return MEMCACHED_UNKNOWN_STAT_KEY;
+    /* return MEMCACHED_UNKNOWN_STAT_KEY; */
+    return MEMCACHED_SUCCESS;
   }
 
   return MEMCACHED_SUCCESS;
@@ -404,9 +405,20 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
   memcached_return_t rc;
   memcached_stat_st *stats;
 
+  if (! ptr)
+  {
+    WATCHPOINT_ASSERT(memc_ptr);
+    return NULL;
+  }
+
+  WATCHPOINT_ASSERT(error);
+
+
   unlikely (ptr->flags.use_udp)
   {
-    *error= MEMCACHED_NOT_SUPPORTED;
+    if (error)
+      *error= MEMCACHED_NOT_SUPPORTED;
+
     return NULL;
   }
 
@@ -414,7 +426,9 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
 
   if (! stats)
   {
-    *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE;
+    if (error)
+      *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE;
+
     return NULL;
   }
 
@@ -444,7 +458,9 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
       rc= MEMCACHED_SOME_ERRORS;
   }
 
-  *error= rc;
+  if (error)
+    *error= rc;
+
   return stats;
 }