Test cases now pass
author <brian@gir.local> <>
Thu, 20 Sep 2007 17:18:27 +0000 (19:18 +0200)
committer <brian@gir.local> <>
Thu, 20 Sep 2007 17:18:27 +0000 (19:18 +0200)
lib/memcached.c
lib/memcached_connect.c
lib/memcached_response.c
tests/test.c

index c636b9b4e994e938cbcca1d1cd32d4abbdda7b16..6a7715de06cfac8251c7d56a049a1bc5717cb525 100644 (file)
@@ -32,8 +32,9 @@ void memcached_deinit(memcached_st *ptr)
   {
     for (x= 0; x < ptr->number_of_hosts; x++)
     {
-      if (ptr->hosts[x].fd == -1)
+      if (ptr->hosts[x].fd > 0)
         close(ptr->hosts[x].fd);
+
       free(ptr->hosts[x].hostname);
     }
 
index 31f8ce1629458952b832d512da10a1a2f766a577..592ede44e804e4dad5b0511f37927b0d1c3d746a 100644 (file)
@@ -12,8 +12,8 @@ memcached_return memcached_server_add(memcached_st *ptr, char *hostname, unsigne
   ptr->hosts= (memcached_host_st *)realloc(ptr->hosts, sizeof(memcached_host_st) * (ptr->number_of_hosts+1));
   memset(ptr->hosts, 0, sizeof(memcached_host_st) * (size_t)ptr->number_of_hosts);
   ptr->hosts[ptr->number_of_hosts].hostname=
-    (char *)malloc(sizeof(char) * (strlen(hostname) + 1));
-  memset(ptr->hosts[ptr->number_of_hosts].hostname, 0, sizeof(char) * (strlen(hostname) + 1));
+    (char *)malloc(sizeof(char) * (strlen(hostname)+1));
+  memset(ptr->hosts[ptr->number_of_hosts].hostname, 0, strlen(hostname)+1);
   memcpy(ptr->hosts[ptr->number_of_hosts].hostname, hostname, strlen(hostname));
   ptr->hosts[ptr->number_of_hosts].port= port;
   ptr->hosts[ptr->number_of_hosts].fd= -1;
index ec29f0aa230292d455528d24e61b99e9361dc560..693f9b30520a71c0f21f875ffc095090b25e8c6f 100644 (file)
@@ -43,8 +43,15 @@ memcached_return memcached_response(memcached_st *ptr,
         else
           return MEMCACHED_UNKNOWN_READ_FAILURE;
       }
-    case 'E': /* PROTOCOL ERROR */
-      return MEMCACHED_PROTOCOL_ERROR;
+    case 'E': /* PROTOCOL ERROR or END */
+      {
+        if (buffer[1] == 'N')
+          return MEMCACHED_NOTFOUND;
+        else if (buffer[1] == 'R')
+          return MEMCACHED_PROTOCOL_ERROR;
+        else
+          return MEMCACHED_UNKNOWN_READ_FAILURE;
+      }
     case 'C': /* CLIENT ERROR */
       return MEMCACHED_CLIENT_ERROR;
     default:
index 784ec9ae33793d673bcde644c7f3800e0753d1c6..4cf41c63f8074a16fd788589266c7e7eb8672fb4 100644 (file)
@@ -133,7 +133,6 @@ void get_test(void)
   string= memcached_get(memc, key, strlen(key),
                         &string_length, &flags, &rc);
 
-  printf("RC %u\n", rc);
   assert(rc == MEMCACHED_NOTFOUND);
   assert(string_length ==  0);
   assert(!string);