X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.cc;h=52daefecf460b36fad99d156e8f5023a5cc5fba7;hb=5a65c28db362c4d62419075c5c9e416fd855a9f9;hp=6d0a47d373d1b49f2d337b26e65132db829f9ab2;hpb=e82f6a9bffe896a579ae5013a9cab51180cd003d;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.cc b/libmemcached/server.cc index 6d0a47d3..52daefec 100644 --- a/libmemcached/server.cc +++ b/libmemcached/server.cc @@ -194,6 +194,7 @@ memcached_return_t memcached_server_cursor(const memcached_st *ptr, return rc; } + size_t errors= 0; for (uint32_t x= 0; x < memcached_server_count(ptr); x++) { memcached_server_instance_st instance= @@ -201,16 +202,17 @@ memcached_return_t memcached_server_cursor(const memcached_st *ptr, for (uint32_t y= 0; y < number_of_callbacks; y++) { - unsigned int iferror; + memcached_return_t ret= (*callback[y])(ptr, instance, context); - iferror= (*callback[y])(ptr, instance, context); - - if (iferror) + if (memcached_failed(ret)) + { + errors++; continue; + } } } - return MEMCACHED_SUCCESS; + return errors ? MEMCACHED_SOME_ERRORS : MEMCACHED_SUCCESS; } memcached_return_t memcached_server_execute(memcached_st *ptr, @@ -349,3 +351,26 @@ const char *memcached_server_error(memcached_server_instance_st ptr) return ptr ? ptr->cached_server_error : NULL; } +const char *memcached_server_type(memcached_server_instance_st ptr) +{ + if (ptr) + { + switch (ptr->type) + { + case MEMCACHED_CONNECTION_TCP: + return "TCP"; + + case MEMCACHED_CONNECTION_UDP: + return "UDP"; + + case MEMCACHED_CONNECTION_UNIX_SOCKET: + return "SOCKET"; + + case MEMCACHED_CONNECTION_MAX: + case MEMCACHED_CONNECTION_UNKNOWN: + break; + } + } + + return "UNKNOWN"; +}