X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_response.c;h=42a06411175db1e664ac80e5d5bef1cc748c0324;hb=8c34786ea9d4b879bf5c5cf7ad811836f0d1f37f;hp=91ae3fe60870e48092bd2c1bff8f28c56c81717e;hpb=b8aaaefdcb0b10d22668da2b530b67f55ffa653a;p=m6w6%2Flibmemcached diff --git a/lib/memcached_response.c b/lib/memcached_response.c index 91ae3fe6..42a06411 100644 --- a/lib/memcached_response.c +++ b/lib/memcached_response.c @@ -5,7 +5,8 @@ from an issued command. */ -#include +#include "common.h" +#include "memcached_io.h" memcached_return memcached_response(memcached_st *ptr, char *buffer, size_t buffer_length, @@ -21,7 +22,9 @@ memcached_return memcached_response(memcached_st *ptr, while (1) { unsigned int read_length; - read_length= read(ptr->hosts[server_key].fd, buffer_ptr, 1); + + read_length= memcached_io_read(ptr, server_key, + buffer_ptr, 1); if (read_length != 1) return MEMCACHED_UNKNOWN_READ_FAILURE; @@ -40,15 +43,17 @@ memcached_return memcached_response(memcached_st *ptr, return MEMCACHED_SUCCESS; case 'S': /* STORED STATS SERVER_ERROR */ { - if (buffer[1] == 'T') /* STORED STATS */ + if (buffer[2] == 'A') /* STORED STATS */ return MEMCACHED_SUCCESS; else if (buffer[1] == 'E') return MEMCACHED_SERVER_ERROR; + else if (buffer[1] == 'T') + return MEMCACHED_STORED; else return MEMCACHED_UNKNOWN_READ_FAILURE; } case 'D': /* DELETED */ - return MEMCACHED_SUCCESS; + return MEMCACHED_DELETED; case 'N': /* NOT_FOUND */ { if (buffer[4] == 'F') @@ -61,7 +66,7 @@ memcached_return memcached_response(memcached_st *ptr, case 'E': /* PROTOCOL ERROR or END */ { if (buffer[1] == 'N') - return MEMCACHED_NOTFOUND; + return MEMCACHED_END; else if (buffer[1] == 'R') return MEMCACHED_PROTOCOL_ERROR; else @@ -72,7 +77,6 @@ memcached_return memcached_response(memcached_st *ptr, default: return MEMCACHED_UNKNOWN_READ_FAILURE; - return MEMCACHED_READ_FAILURE; } return MEMCACHED_SUCCESS;