projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
MEMCACHED_BEHAVIOR_RETRY_TIMEOUT added for timeout
[m6w6/libmemcached]
/
lib
/
memcached_storage.c
diff --git
a/lib/memcached_storage.c
b/lib/memcached_storage.c
index 43a18a98336a7474f027e5a493e792c8390fec97..6d115913ebd0d213784c9cf108c23b3e6f6aace3 100644
(file)
--- a/
lib/memcached_storage.c
+++ b/
lib/memcached_storage.c
@@
-20,7
+20,7
@@
typedef enum {
} memcached_storage_action;
/* Inline this */
} memcached_storage_action;
/* Inline this */
-char *storage_op_string(memcached_storage_action verb)
+
static
char *storage_op_string(memcached_storage_action verb)
{
switch (verb)
{
{
switch (verb)
{
@@
-46,7
+46,7
@@
static inline memcached_return memcached_send(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags,
+ uint
32
_t flags,
uint64_t cas,
memcached_storage_action verb)
{
uint64_t cas,
memcached_storage_action verb)
{
@@
-66,6
+66,9
@@
static inline memcached_return memcached_send(memcached_st *ptr,
if (ptr->number_of_hosts == 0)
return MEMCACHED_NO_SERVERS;
if (ptr->number_of_hosts == 0)
return MEMCACHED_NO_SERVERS;
+ if ((ptr->flags & MEM_VERIFY_KEY) && (memcachd_key_test(&key, &key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED))
+ return MEMCACHED_BAD_KEY_PROVIDED;
+
server_key= memcached_generate_hash(ptr, master_key, master_key_length);
if (cas)
server_key= memcached_generate_hash(ptr, master_key, master_key_length);
if (cas)
@@
-86,43
+89,39
@@
static inline memcached_return memcached_send(memcached_st *ptr,
goto error;
}
goto error;
}
- rc= memcached_do(
ptr, server_key
, buffer, write_length, 0);
+ rc= memcached_do(
&ptr->hosts[server_key]
, buffer, write_length, 0);
if (rc != MEMCACHED_SUCCESS)
goto error;
if (rc != MEMCACHED_SUCCESS)
goto error;
- if ((sent_length= memcached_io_write(
ptr, server_key
, value, value_length, 0)) == -1)
+ if ((sent_length= memcached_io_write(
&ptr->hosts[server_key]
, value, value_length, 0)) == -1)
{
rc= MEMCACHED_WRITE_FAILURE;
goto error;
}
{
rc= MEMCACHED_WRITE_FAILURE;
goto error;
}
- if ((ptr->flags & MEM_
NO_BLOCK
) && verb == SET_OP)
+ if ((ptr->flags & MEM_
BUFFER_REQUESTS
) && verb == SET_OP)
to_write= 0;
else
to_write= 1;
to_write= 0;
else
to_write= 1;
- if ((sent_length= memcached_io_write(
ptr, server_key
, "\r\n", 2, to_write)) == -1)
+ if ((sent_length= memcached_io_write(
&ptr->hosts[server_key]
, "\r\n", 2, to_write)) == -1)
{
rc= MEMCACHED_WRITE_FAILURE;
goto error;
}
if (to_write == 0)
{
rc= MEMCACHED_WRITE_FAILURE;
goto error;
}
if (to_write == 0)
- {
- rc= MEMCACHED_SUCCESS;
- memcached_server_response_increment(ptr, server_key);
- }
- else
- {
- rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, server_key);
- }
+ return MEMCACHED_BUFFERED;
+
+ rc= memcached_response(&ptr->hosts[server_key], buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL);
+
if (rc == MEMCACHED_STORED)
return MEMCACHED_SUCCESS;
else
return rc;
error:
if (rc == MEMCACHED_STORED)
return MEMCACHED_SUCCESS;
else
return rc;
error:
- memcached_io_reset(
ptr, server_key
);
+ memcached_io_reset(
&ptr->hosts[server_key]
);
return rc;
}
return rc;
}
@@
-130,7
+129,7
@@
error:
memcached_return memcached_set(memcached_st *ptr, char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
memcached_return memcached_set(memcached_st *ptr, char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_SET_START();
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_SET_START();
@@
-145,7
+144,7
@@
memcached_return memcached_add(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_ADD_START();
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_ADD_START();
@@
-160,7
+159,7
@@
memcached_return memcached_replace(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_REPLACE_START();
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_REPLACE_START();
@@
-175,7
+174,7
@@
memcached_return memcached_prepend(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
@@
-188,7
+187,7
@@
memcached_return memcached_append(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
@@
-201,13
+200,13
@@
memcached_return memcached_cas(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags,
+ uint
32
_t flags,
uint64_t cas)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
key, key_length, value, value_length,
uint64_t cas)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
key, key_length, value, value_length,
- expiration, flags, cas,
APPEND
_OP);
+ expiration, flags, cas,
CAS
_OP);
return rc;
}
return rc;
}
@@
-216,7
+215,7
@@
memcached_return memcached_set_by_key(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_SET_START();
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_SET_START();
@@
-232,7
+231,7
@@
memcached_return memcached_add_by_key(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_ADD_START();
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_ADD_START();
@@
-248,7
+247,7
@@
memcached_return memcached_replace_by_key(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_REPLACE_START();
{
memcached_return rc;
LIBMEMCACHED_MEMCACHED_REPLACE_START();
@@
-264,7
+263,7
@@
memcached_return memcached_prepend_by_key(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
@@
-278,7
+277,7
@@
memcached_return memcached_append_by_key(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags)
+ uint
32
_t flags)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
@@
-292,12
+291,12
@@
memcached_return memcached_cas_by_key(memcached_st *ptr,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
char *key, size_t key_length,
char *value, size_t value_length,
time_t expiration,
- uint
16
_t flags,
+ uint
32
_t flags,
uint64_t cas)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
key, key_length, value, value_length,
uint64_t cas)
{
memcached_return rc;
rc= memcached_send(ptr, key, key_length,
key, key_length, value, value_length,
- expiration, flags, cas,
APPEND
_OP);
+ expiration, flags, cas,
CAS
_OP);
return rc;
}
return rc;
}