Fix for bad null pointer on flag by Toru Maesaka.
[m6w6/libmemcached] / lib / memcached_response.c
index 6ec120c8662208e2ed7a8eb1f7ba2f1c7dc0eab1..4b29a1cbbec259211ef3800954a580f13f4512f9 100644 (file)
@@ -8,10 +8,9 @@
 #include "common.h"
 #include "memcached_io.h"
 
-memcached_return memcached_response(memcached_st *ptr, 
+memcached_return memcached_response(memcached_server_st *ptr, 
                                     char *buffer, size_t buffer_length,
-                                    memcached_result_st *result,
-                                    unsigned int server_key)
+                                    memcached_result_st *result)
 {
   unsigned int x;
   size_t send_length;
@@ -22,10 +21,10 @@ memcached_return memcached_response(memcached_st *ptr,
   send_length= 0;
 
   /* We may have old commands in the buffer not set, first purge */
-  if (ptr->flags & MEM_NO_BLOCK)
-    (void)memcached_io_write(ptr, server_key, NULL, 0, 1);
+  if (ptr->root->flags & MEM_NO_BLOCK)
+    (void)memcached_io_write(ptr, NULL, 0, 1);
 
-  max_messages= memcached_server_response_count(ptr, server_key);
+  max_messages= memcached_server_response_count(ptr);
   for (x= 0; x <  max_messages; x++)
   {
     size_t total_length= 0;
@@ -35,8 +34,7 @@ memcached_return memcached_response(memcached_st *ptr,
     {
       unsigned int read_length;
 
-      read_length= memcached_io_read(ptr, server_key,
-                                     buffer_ptr, 1);
+      read_length= memcached_io_read(ptr, buffer_ptr, 1);
 
       if (read_length != 1)
         return  MEMCACHED_UNKNOWN_READ_FAILURE;
@@ -55,7 +53,7 @@ memcached_return memcached_response(memcached_st *ptr,
     buffer_ptr++;
     *buffer_ptr= 0;
 
-    memcached_server_response_decrement(ptr, server_key);
+    memcached_server_response_decrement(ptr);
   }
 
   switch(buffer[0])
@@ -66,11 +64,11 @@ memcached_return memcached_response(memcached_st *ptr,
       memcached_return rc;
 
       /* We add back in one because we will need to search for END */
-      memcached_server_response_increment(ptr, server_key);
+      memcached_server_response_increment(ptr);
       if (result)
-        rc= value_fetch(ptr, buffer, result, server_key);
+        rc= value_fetch(ptr, buffer, result);
       else
-        rc= value_fetch(ptr, buffer, &ptr->result, server_key);
+        rc= value_fetch(ptr, buffer, &ptr->root->result);
 
       return rc;
     }
@@ -90,7 +88,7 @@ memcached_return memcached_response(memcached_st *ptr,
     {
       if (buffer[2] == 'A') /* STORED STATS */
       {
-        memcached_server_response_increment(ptr, server_key);
+        memcached_server_response_increment(ptr);
         return MEMCACHED_STAT;
       }
       else if (buffer[1] == 'E')