X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=clients%2Fmemstat.c;h=0bc365ac8010eabbe6491eb5174cad66e8d5cda3;hb=ab125a58ba37c005f5365b9e8fc68e9d0bfa8ce7;hp=6b6c5bcf0ac1df9f37627de8ce44b73ca5d81e5f;hpb=ba24508f51eed2af4f0192589801db2f945eac7b;p=m6w6%2Flibmemcached diff --git a/clients/memstat.c b/clients/memstat.c index 6b6c5bcf..0bc365ac 100644 --- a/clients/memstat.c +++ b/clients/memstat.c @@ -11,13 +11,12 @@ * Brian Aker * Toru Maesaka */ +#include "config.h" -#include "libmemcached/common.h" #include #include #include #include -#include #include #include #include @@ -56,36 +55,22 @@ static struct option long_options[]= }; -static memcached_return_t server_print_callback(const memcached_st *memc, - memcached_server_instance_st instance, - void *context) +static memcached_return_t stat_printer(memcached_server_instance_st instance, + const char *key, size_t key_length, + const char *value, size_t value_length, + void *context) { - memcached_stat_st server_stat; - memcached_return_t rc; - char **list; - char **ptr; - + static memcached_server_instance_st last= NULL; (void)context; - rc= memcached_stat_servername(&server_stat, NULL, - memcached_server_name(instance), - memcached_server_port(instance)); - - list= memcached_stat_get_keys(memc, &server_stat, &rc); - - printf("Server: %s (%u)\n", memcached_server_name(instance), - (uint32_t)memcached_server_port(instance)); - - for (ptr= list; *ptr; ptr++) + if (last != instance) { - char *value= memcached_stat_get_value(memc, &server_stat, *ptr, &rc); - - printf("\t %s: %s\n", *ptr, value); - free(value); + printf("Server: %s (%u)\n", memcached_server_name(instance), + (uint32_t)memcached_server_port(instance)); + last= instance; } - free(list); - printf("\n"); + printf("\t %.*s: %.*s\n", (int)key_length, key, (int)value_length, value); return MEMCACHED_SUCCESS; } @@ -97,6 +82,7 @@ int main(int argc, char *argv[]) memcached_server_st *servers; options_parse(argc, argv); + initialize_sockets(); if (! opt_servers) { @@ -115,7 +101,7 @@ int main(int argc, char *argv[]) memc= memcached_create(NULL); servers= memcached_servers_parse(opt_servers); - memcached_server_push(memc, servers); + rc= memcached_server_push(memc, servers); memcached_server_list_free(servers); if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_SOME_ERRORS) @@ -140,12 +126,7 @@ int main(int argc, char *argv[]) } else { - memcached_server_fn callbacks[1]; - - callbacks[0]= server_print_callback; - rc= memcached_server_cursor(memc, callbacks, - NULL, 1); - + rc= memcached_stat_execute(memc, NULL, stat_printer, NULL); } free(opt_servers);