X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_response.c;h=ea13bb151ce09065cd37f4d958206a7140d1465b;hb=771170f522f2186b7fb0cde6052dbe37c1a9f1b7;hp=ba0691b504a39590c67184d830e2c1753222cec4;hpb=89608dc3370371a9fde46d6f60e9480fa576fc3a;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached_response.c b/libmemcached/memcached_response.c index ba0691b5..ea13bb15 100644 --- a/libmemcached/memcached_response.c +++ b/libmemcached/memcached_response.c @@ -125,7 +125,7 @@ static memcached_return textual_value_fetch(memcached_server_st *ptr, if (end_ptr == string_ptr) goto read_error; for (next_ptr= string_ptr; isdigit(*string_ptr); string_ptr++); - result->flags= strtoul(next_ptr, &string_ptr, 10); + result->flags= (uint32_t) strtoul(next_ptr, &string_ptr, 10); if (end_ptr == string_ptr) goto read_error; @@ -250,7 +250,9 @@ static memcached_return textual_read_one_response(memcached_server_st *ptr, memory in the struct, which is important, for something that rarely should happen? */ - rel_ptr= (char *)ptr->root->call_realloc(ptr->root, ptr->cached_server_error, endptr - startptr + 1); + rel_ptr= (char *)ptr->root->call_realloc(ptr->root, + ptr->cached_server_error, + (size_t) (endptr - startptr + 1)); if (rel_ptr == NULL) { @@ -261,7 +263,7 @@ static memcached_return textual_read_one_response(memcached_server_st *ptr, } ptr->cached_server_error= rel_ptr; - memcpy(ptr->cached_server_error, startptr, endptr - startptr); + memcpy(ptr->cached_server_error, startptr, (size_t) (endptr - startptr)); ptr->cached_server_error[endptr - startptr]= 0; return MEMCACHED_SERVER_ERROR; } @@ -461,7 +463,7 @@ static memcached_return binary_read_one_response(memcached_server_st *ptr, size_t nr= (bodylen > SMALL_STRING_LEN) ? SMALL_STRING_LEN : bodylen; if (memcached_safe_read(ptr, hole, nr) != MEMCACHED_SUCCESS) return MEMCACHED_UNKNOWN_READ_FAILURE; - bodylen -= nr; + bodylen-= (uint32_t) nr; } /* This might be an error from one of the quiet commands.. if @@ -491,11 +493,17 @@ static memcached_return binary_read_one_response(memcached_server_st *ptr, case PROTOCOL_BINARY_RESPONSE_KEY_EEXISTS: rc= MEMCACHED_DATA_EXISTS; break; + case PROTOCOL_BINARY_RESPONSE_NOT_STORED: + rc= MEMCACHED_NOTSTORED; + break; case PROTOCOL_BINARY_RESPONSE_E2BIG: + rc= MEMCACHED_E2BIG; + break; + case PROTOCOL_BINARY_RESPONSE_ENOMEM: + rc= MEMCACHED_MEMORY_ALLOCATION_FAILURE; + break; case PROTOCOL_BINARY_RESPONSE_EINVAL: - case PROTOCOL_BINARY_RESPONSE_NOT_STORED: case PROTOCOL_BINARY_RESPONSE_UNKNOWN_COMMAND: - case PROTOCOL_BINARY_RESPONSE_ENOMEM: default: /* @todo fix the error mappings */ rc= MEMCACHED_PROTOCOL_ERROR;