projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix bug in handling some single letter command line options
[m6w6/libmemcached]
/
lib
/
memcached_response.c
diff --git
a/lib/memcached_response.c
b/lib/memcached_response.c
index 09d1fa4d8b91bc0a8725a69ad9ef1255a4745d50..693f9b30520a71c0f21f875ffc095090b25e8c6f 100644
(file)
--- a/
lib/memcached_response.c
+++ b/
lib/memcached_response.c
@@
-8,12
+8,13
@@
#include <memcached.h>
memcached_return memcached_response(memcached_st *ptr,
#include <memcached.h>
memcached_return memcached_response(memcached_st *ptr,
- char *buffer, size_t buffer_length)
+ char *buffer, size_t buffer_length,
+ unsigned int server_key)
{
size_t send_length;
memset(buffer, 0, buffer_length);
{
size_t send_length;
memset(buffer, 0, buffer_length);
- send_length= read(ptr->fd, buffer, buffer_length);
+ send_length= read(ptr->
hosts[server_key].
fd, buffer, buffer_length);
if (send_length)
switch(buffer[0])
if (send_length)
switch(buffer[0])
@@
-42,8
+43,15
@@
memcached_return memcached_response(memcached_st *ptr,
else
return MEMCACHED_UNKNOWN_READ_FAILURE;
}
else
return MEMCACHED_UNKNOWN_READ_FAILURE;
}
- case 'E': /* PROTOCOL ERROR */
- return MEMCACHED_PROTOCOL_ERROR;
+ case 'E': /* PROTOCOL ERROR or END */
+ {
+ if (buffer[1] == 'N')
+ return MEMCACHED_NOTFOUND;
+ else if (buffer[1] == 'R')
+ return MEMCACHED_PROTOCOL_ERROR;
+ else
+ return MEMCACHED_UNKNOWN_READ_FAILURE;
+ }
case 'C': /* CLIENT ERROR */
return MEMCACHED_CLIENT_ERROR;
default:
case 'C': /* CLIENT ERROR */
return MEMCACHED_CLIENT_ERROR;
default: