projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Added get/set behavior functions to the C++ interface. Added a test to exercise the...
[m6w6/libmemcached]
/
libmemcached
/
memcached_response.c
diff --git
a/libmemcached/memcached_response.c
b/libmemcached/memcached_response.c
index ba0691b504a39590c67184d830e2c1753222cec4..fe13ddd53f8045efabdfb51e8fd4fbf583f21555 100644
(file)
--- 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++);
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;
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?
*/
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)
{
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;
}
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;
}
ptr->cached_server_error[endptr - startptr]= 0;
return MEMCACHED_SERVER_ERROR;
}
@@
-354,8
+356,14
@@
static memcached_return binary_read_one_response(memcached_server_st *ptr,
{
switch (header.response.opcode)
{
{
switch (header.response.opcode)
{
- case PROTOCOL_BINARY_CMD_GETK:
case PROTOCOL_BINARY_CMD_GETKQ:
case PROTOCOL_BINARY_CMD_GETKQ:
+ /*
+ * We didn't increment the response counter for the GETKQ packet
+ * (only the final NOOP), so we need to increment the counter again.
+ */
+ memcached_server_response_increment(ptr);
+ /* FALLTHROUGH */
+ case PROTOCOL_BINARY_CMD_GETK:
{
uint16_t keylen= header.response.keylen;
memcached_result_reset(result);
{
uint16_t keylen= header.response.keylen;
memcached_result_reset(result);
@@
-461,7
+469,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;
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
}
/* This might be an error from one of the quiet commands.. if
@@
-491,11
+499,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_KEY_EEXISTS:
rc= MEMCACHED_DATA_EXISTS;
break;
+ case PROTOCOL_BINARY_RESPONSE_NOT_STORED:
+ rc= MEMCACHED_NOTSTORED;
+ break;
case PROTOCOL_BINARY_RESPONSE_E2BIG:
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_EINVAL:
- case PROTOCOL_BINARY_RESPONSE_NOT_STORED:
case PROTOCOL_BINARY_RESPONSE_UNKNOWN_COMMAND:
case PROTOCOL_BINARY_RESPONSE_UNKNOWN_COMMAND:
- case PROTOCOL_BINARY_RESPONSE_ENOMEM:
default:
/* @todo fix the error mappings */
rc= MEMCACHED_PROTOCOL_ERROR;
default:
/* @todo fix the error mappings */
rc= MEMCACHED_PROTOCOL_ERROR;