diff options
author | Brian Aker <brian@tangent.org> | 2011-12-22 00:34:24 -0800 |
---|---|---|
committer | Brian Aker <brian@tangent.org> | 2011-12-22 00:34:24 -0800 |
commit | 2be01b67cdfd2cda7f623492650898896f57e978 (patch) | |
tree | 90d0dbd59ce9e0ea5b0c728c3d66c8ceaf61f6bb /libmemcached/response.cc | |
parent | e978a2d4f1880157358f710e042863dd3ad6e9a3 (diff) | |
download | libmemcached-2be01b67cdfd2cda7f623492650898896f57e978.tar.gz |
Convert stats to vector.
Diffstat (limited to 'libmemcached/response.cc')
-rw-r--r-- | libmemcached/response.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libmemcached/response.cc b/libmemcached/response.cc index 061f7401..775102fa 100644 --- a/libmemcached/response.cc +++ b/libmemcached/response.cc @@ -184,7 +184,9 @@ static memcached_return_t textual_value_fetch(memcached_server_write_instance_st value_length= (size_t)strtoull(next_ptr, &string_ptr, 10); if (end_ptr == string_ptr) + { goto read_error; + } /* Skip spaces */ if (*string_ptr == '\r') @@ -388,13 +390,19 @@ static memcached_return_t textual_read_one_response(memcached_server_write_insta default: { - unsigned long long auto_return_value; + unsigned long long int auto_return_value= strtoull(buffer, (char **)NULL, 10); - if (sscanf(buffer, "%llu", &auto_return_value) == 1) - return MEMCACHED_SUCCESS; + if (auto_return_value == ULLONG_MAX and errno == ERANGE) + { + return MEMCACHED_UNKNOWN_READ_FAILURE; + } + else if (errno == EINVAL) + { + return MEMCACHED_UNKNOWN_READ_FAILURE; + } WATCHPOINT_STRING(buffer); - return MEMCACHED_UNKNOWN_READ_FAILURE; + return MEMCACHED_SUCCESS; } } |