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_delete.c
diff --git
a/lib/memcached_delete.c
b/lib/memcached_delete.c
index df16d2f4a68d5451e8bba19af9eb4de072dc5ddf..d24c0f82a0b7d16ffff58e922a09a05f97817010 100644
(file)
--- a/
lib/memcached_delete.c
+++ b/
lib/memcached_delete.c
@@
-6,21
+6,25
@@
memcached_return memcached_delete(memcached_st *ptr, char *key, size_t key_lengt
size_t send_length;
memcached_return rc;
char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
size_t send_length;
memcached_return rc;
char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
+ unsigned int server_key;
rc= memcached_connect(ptr);
rc= memcached_connect(ptr);
+ if (rc != MEMCACHED_SUCCESS)
+ return rc;
+
+ server_key= memcached_generate_hash(key, key_length) % ptr->number_of_hosts;
+
if (expiration)
send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE,
if (expiration)
send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE,
- "delete %.*s %u\r\n", key_length, key, expiration);
+ "delete %.*s %llu\r\n", (int)key_length, key,
+ (unsigned long long)expiration);
else
send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE,
else
send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE,
- "delete %.*s\r\n", key_length, key);
- if ((write(ptr->hosts[0].fd, buffer, send_length) == -1))
- {
- fprintf(stderr, "failed set on %.*s TCP\n", key_length+1, key);
+ "delete %.*s\r\n", (int)key_length, key);
+ if ((write(ptr->hosts[server_key].fd, buffer, send_length) == -1))
return MEMCACHED_WRITE_FAILURE;
return MEMCACHED_WRITE_FAILURE;
- }
- return memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE);
+ return memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE
, server_key
);
}
}