X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_flush_buffers.c;h=bbf095493abf7ecb3f3a3a453d0622205b9b34db;hb=a7a011c2ea4a63368b3a96a332da00820ed402cb;hp=0a0fffb62892039ac24f70d737f701058071d2bb;hpb=cd2305940e0234791bbf26f53eca978076414ae7;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached_flush_buffers.c b/libmemcached/memcached_flush_buffers.c index 0a0fffb6..bbf09549 100644 --- a/libmemcached/memcached_flush_buffers.c +++ b/libmemcached/memcached_flush_buffers.c @@ -5,9 +5,18 @@ 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; + for (uint32_t x= 0; x < mem->number_of_hosts; ++x) + 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; }