X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=libmemcached%2Fio.cc;h=885e23919edfea4865cfaab698f00b482afb6487;hb=bcf4f7d33fd0b0cb5bb599b300aa043effc62a33;hp=d0e6aaf6f10cb7942d574420b953ecf4dc7d90d6;hpb=fc72bfb155d6938e6d4b7b0e24a6256d88c2a7c3;p=m6w6%2Flibmemcached diff --git a/libmemcached/io.cc b/libmemcached/io.cc index d0e6aaf6..885e2391 100644 --- a/libmemcached/io.cc +++ b/libmemcached/io.cc @@ -531,9 +531,9 @@ memcached_return_t memcached_io_slurp(memcached_server_write_instance_st ptr) /* fall through */ case ENOTCONN: // Programmer Error - WATCHPOINT_ASSERT(0); + assert(0); case ENOTSOCK: - WATCHPOINT_ASSERT(0); + assert(0); case EBADF: assert_msg(ptr->fd != INVALID_SOCKET, "Invalid socket state"); case EINVAL: @@ -620,20 +620,22 @@ ssize_t memcached_io_write(memcached_server_write_instance_st ptr, return ssize_t(written); } -ssize_t memcached_io_writev(memcached_server_write_instance_st ptr, +bool memcached_io_writev(memcached_server_write_instance_st ptr, libmemcached_io_vector_st vector[], const size_t number_of, const bool with_flush) { + ssize_t complete_total= 0; ssize_t total= 0; for (size_t x= 0; x < number_of; x++, vector++) { + complete_total+= vector->length; if (vector->length) { size_t written; if ((_io_write(ptr, vector->buffer, vector->length, false, written)) == false) { - return -1; + return false; } total+= written; } @@ -643,11 +645,11 @@ ssize_t memcached_io_writev(memcached_server_write_instance_st ptr, { if (memcached_io_write(ptr) == false) { - return -1; + return false; } } - return total; + return (complete_total == total); }