X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_quit.c;h=8ac76d48aeb97b8d2323fd24526f58223108d701;hb=a7a011c2ea4a63368b3a96a332da00820ed402cb;hp=860ee126625a54725758c400dc2284d8680cbd8e;hpb=94cd1cbfb3fe6d0c446be9151ae9b15f775b6511;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached_quit.c b/libmemcached/memcached_quit.c index 860ee126..8ac76d48 100644 --- a/libmemcached/memcached_quit.c +++ b/libmemcached/memcached_quit.c @@ -39,6 +39,15 @@ void memcached_quit_server(memcached_server_st *ptr, uint8_t io_death) ssize_t nread; while (memcached_io_read(ptr, buffer, sizeof(buffer)/sizeof(*buffer), &nread) == MEMCACHED_SUCCESS); + + /* + * memcached_io_read may call memcached_quit_server with io_death if + * it encounters problems, but we don't care about those occurences. + * The intention of that loop is to drain the data sent from the + * server to ensure that the server processed all of the data we + * sent to the server. + */ + ptr->server_failure_counter= 0; } memcached_io_close(ptr);