version_textual no longer attempts to parse invalid response
[awesomized/libmemcached] / libmemcached / memcached_flush_buffers.c
index 0a0fffb62892039ac24f70d737f701058071d2bb..f955dbe645c95755fcc534439e0ef88d63a3048e 100644 (file)
@@ -6,8 +6,17 @@ memcached_return memcached_flush_buffers(memcached_st *mem)
   memcached_return ret= MEMCACHED_SUCCESS;
 
   for (int x= 0; x < mem->number_of_hosts; ++x)
-    if (memcached_io_write(&mem->hosts[x], NULL, 0, 1) == -1)
-      ret= MEMCACHED_SOME_ERRORS;
+    if (mem->hosts[x].write_buffer_offset != 0) 
+    {
+      if (mem->hosts[x].fd == -1 &&
+          (ret= memcached_connect(&mem->hosts[x])) != MEMCACHED_SUCCESS)
+      {
+        WATCHPOINT_ERROR(ret);
+        return ret;
+      }
+      if (memcached_io_write(&mem->hosts[x], NULL, 0, 1) == -1)
+        ret= MEMCACHED_SOME_ERRORS;
+    }
 
   return ret;
 }