X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fresponse.cc;h=391c9309814ef10c0eb4d04c0ae0644ed4fd1f94;hb=673be386d6ae670d3c62051b10e7f57719338595;hp=96772ff380ac064d6182da66dd94ae6f89f04c97;hpb=5086fce85b544731a8cf3c0d2c3dbb478ed90c43;p=m6w6%2Flibmemcached diff --git a/libmemcached/response.cc b/libmemcached/response.cc index 96772ff3..391c9309 100644 --- a/libmemcached/response.cc +++ b/libmemcached/response.cc @@ -648,6 +648,25 @@ static memcached_return_t binary_read_one_response(org::libmemcached::Instance* } break; + case PROTOCOL_BINARY_CMD_TOUCH: + { + rc= MEMCACHED_SUCCESS; + if (bodylen == 4) // The four byte read is a bug? + { + char touch_buffer[4]; // @todo document this number + rc= memcached_safe_read(instance, touch_buffer, sizeof(touch_buffer)); +#if 0 + fprintf(stderr, "%s:%d %d %d %d %d %.*s(%d)\n", __FILE__, __LINE__, + int(touch_buffer[0]), + int(touch_buffer[1]), + int(touch_buffer[2]), + int(touch_buffer[3]), + int(bodylen), touch_buffer, int(bodylen)); +#endif + } + return memcached_set_error(*instance, rc, MEMCACHED_AT); + } + case PROTOCOL_BINARY_CMD_FLUSH: case PROTOCOL_BINARY_CMD_QUIT: case PROTOCOL_BINARY_CMD_SET: @@ -656,13 +675,8 @@ static memcached_return_t binary_read_one_response(org::libmemcached::Instance* case PROTOCOL_BINARY_CMD_APPEND: case PROTOCOL_BINARY_CMD_PREPEND: case PROTOCOL_BINARY_CMD_DELETE: - case PROTOCOL_BINARY_CMD_TOUCH: { - if (bodylen != 0) - { - char touch_buffer[32]; // @todo document this number - rc= memcached_safe_read(instance, buffer, sizeof(touch_buffer)); - } + WATCHPOINT_ASSERT(bodylen == 0); return MEMCACHED_SUCCESS; }