X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_flush_buffers.c;h=f955dbe645c95755fcc534439e0ef88d63a3048e;hb=0782a4ac4673c2d32b78bf5fa03b924c7e927bf9;hp=0a0fffb62892039ac24f70d737f701058071d2bb;hpb=cd2305940e0234791bbf26f53eca978076414ae7;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_flush_buffers.c b/libmemcached/memcached_flush_buffers.c index 0a0fffb6..f955dbe6 100644 --- a/libmemcached/memcached_flush_buffers.c +++ b/libmemcached/memcached_flush_buffers.c @@ -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; }