projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
This includes work for partitioning by key. Dormando wished for these methods.
[m6w6/libmemcached]
/
lib
/
memcached_response.c
diff --git
a/lib/memcached_response.c
b/lib/memcached_response.c
index 19fa640076045faa1bdf0cdd5cbfbbad092e9cd1..076b0a6fc2bd67a49c3d5d22e50f9405102c0553 100644
(file)
--- a/
lib/memcached_response.c
+++ b/
lib/memcached_response.c
@@
-18,7
+18,6
@@
memcached_return memcached_response(memcached_st *ptr,
unsigned int max_messages;
unsigned int max_messages;
- memset(buffer, 0, buffer_length);
send_length= 0;
max_messages= memcached_server_response_count(ptr, server_key);
send_length= 0;
max_messages= memcached_server_response_count(ptr, server_key);
@@
-44,7
+43,12
@@
memcached_return memcached_response(memcached_st *ptr,
total_length++;
WATCHPOINT_ASSERT(total_length < buffer_length);
total_length++;
WATCHPOINT_ASSERT(total_length < buffer_length);
+
+ if (total_length >= buffer_length)
+ return MEMCACHED_PROTOCOL_ERROR;
}
}
+ buffer_ptr++;
+ *buffer_ptr= 0;
if (memcached_server_response_count(ptr, server_key))
memcached_server_response_decrement(ptr, server_key);
if (memcached_server_response_count(ptr, server_key))
memcached_server_response_decrement(ptr, server_key);
@@
-52,7
+56,7
@@
memcached_return memcached_response(memcached_st *ptr,
switch(buffer[0])
{
switch(buffer[0])
{
- case 'V': /* VALUE */
+ case 'V': /* VALUE
|| VERSION
*/
return MEMCACHED_SUCCESS;
case 'O': /* OK */
return MEMCACHED_SUCCESS;
return MEMCACHED_SUCCESS;
case 'O': /* OK */
return MEMCACHED_SUCCESS;