projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge build trunk.
[m6w6/libmemcached]
/
libmemcached
/
server.cc
diff --git
a/libmemcached/server.cc
b/libmemcached/server.cc
index a86f09ad994c919a86b883913d5a7c3e655341ec..b742f7ef1695cde1da2fe736b7b12e0dc120e609 100644
(file)
--- a/
libmemcached/server.cc
+++ b/
libmemcached/server.cc
@@
-241,18
+241,28
@@
memcached_return_t memcached_server_execute(memcached_st *ptr,
memcached_server_execute_fn callback,
void *context)
{
memcached_server_execute_fn callback,
void *context)
{
+ if (callback == NULL)
+ {
+ return MEMCACHED_INVALID_ARGUMENTS;
+ }
+
+ bool some_errors= false;;
for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
{
memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
for (uint32_t x= 0; x < memcached_server_count(ptr); x++)
{
memcached_server_write_instance_st instance= memcached_server_instance_fetch(ptr, x);
- unsigned int iferror= (*callback)(ptr, instance, context);
-
- if (iferror)
+ memcached_return_t rc= (*callback)(ptr, instance, context);
+ if (rc == MEMCACHED_INVALID_ARGUMENTS)
{
{
- continue;
+ return rc;
+ }
+ else if (memcached_fatal(rc))
+ {
+ some_errors= true;
}
}
}
}
+ (void)some_errors;
return MEMCACHED_SUCCESS;
}
return MEMCACHED_SUCCESS;
}
@@
-275,9
+285,9
@@
memcached_server_instance_st memcached_server_by_key(memcached_st *ptr,
return NULL;
}
return NULL;
}
- if (memcached_failed(
rc=
(memcached_key_test(*ptr, (const char **)&key, &key_length, 1))))
+ if (memcached_failed((memcached_key_test(*ptr, (const char **)&key, &key_length, 1))))
{
{
- *error=
rc
;
+ *error=
memcached_last_error(ptr)
;
return NULL;
}
return NULL;
}