Fix in issue where no servers are to be found (introduced in last refactoring)
author <brian@gir.tangent.org> <>
Sat, 1 Dec 2007 07:33:46 +0000 (23:33 -0800)
committer <brian@gir.tangent.org> <>
Sat, 1 Dec 2007 07:33:46 +0000 (23:33 -0800)
lib/memcached_storage.c
tests/function.c

index 6672a86ad2939be30e1d221256132a8e904f9555..ee48cad317c9781f94d8f1750792386fc25a1bcd 100644 (file)
@@ -62,6 +62,9 @@ static inline memcached_return memcached_send(memcached_st *ptr,
   if (key_length == 0)
     return MEMCACHED_NO_KEY_PROVIDED;
 
+  if (ptr->number_of_hosts == 0)
+    return MEMCACHED_NO_SERVERS;
+
   server_key= memcached_generate_hash(ptr, key, key_length);
 
   if (cas)
index 9cd10aff18a343c8373eafa8c3ba12cb14e75b17..5ececc5f89ad4f24d861468d496342951d69fdb2 100644 (file)
@@ -1225,13 +1225,16 @@ uint8_t user_supplied_bug6(memcached_st *memc)
   value= memcached_get(memc, keys[0], key_length[0],
                         &value_length, &flags, &rc);           
   assert(value == NULL);
+  assert(rc == MEMCACHED_NOTFOUND);
   rc= memcached_mget(memc, keys, key_length, 4);
+  assert(rc == MEMCACHED_SUCCESS);
 
   count= 0;
   while ((value= memcached_fetch(memc, return_key, &return_key_length, 
                                         &value_length, &flags, &rc)))
     count++;
   assert(count == 0);
+  assert(rc == MEMCACHED_NOTFOUND);
 
   for (x= 0; x < 4; x++)
   {
@@ -1249,12 +1252,15 @@ uint8_t user_supplied_bug6(memcached_st *memc)
     free(value);
 
     rc= memcached_mget(memc, keys, key_length, 4);
+    assert(rc == MEMCACHED_SUCCESS);
     count= 3;
     /* We test for purge of partial complete fetches */
     for (count= 3; count; count--)
     {
       value= memcached_fetch(memc, return_key, &return_key_length, 
                              &value_length, &flags, &rc);
+      memcmp(value, insert_data, value_length);
+      assert(value_length);
       free(value);
       assert(rc == MEMCACHED_SUCCESS);
     }