X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_stats.c;h=a2dc17a3e0e56fc0a444893c103fa673b3eb996e;hb=46f12a5edfa0fc0382a9d25355b15d30f857b138;hp=b3a5781213e8f9f05368ed23f2ee085a431e0ee0;hpb=dcb04e7f4ecbe3d9aee892a551c793a7f2d809b4;p=awesomized%2Flibmemcached diff --git a/lib/memcached_stats.c b/lib/memcached_stats.c index b3a57812..a2dc17a3 100644 --- a/lib/memcached_stats.c +++ b/lib/memcached_stats.c @@ -152,9 +152,6 @@ char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *stat, char buffer[SMALL_STRING_LEN]; *error= MEMCACHED_SUCCESS; - - memset(buffer, 0, SMALL_STRING_LEN); - if (!memcmp("pid", key, strlen("pid"))) snprintf(buffer, SMALL_STRING_LEN,"%u", stat->pid); else if (!memcmp("uptime", key, strlen("uptime"))) @@ -223,9 +220,9 @@ static memcached_return memcached_stats_fetch(memcached_st *ptr, { memcached_return rc; char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE]; - size_t send_length, sent_length; + size_t send_length; - rc= memcached_connect(ptr); + rc= memcached_connect(ptr, server_key); if (rc != MEMCACHED_SUCCESS) return rc; @@ -240,14 +237,13 @@ static memcached_return memcached_stats_fetch(memcached_st *ptr, if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE) return MEMCACHED_WRITE_FAILURE; - sent_length= memcached_io_write(ptr, server_key, buffer, send_length, 1); - - if (sent_length == -1 || sent_length != send_length) - return MEMCACHED_WRITE_FAILURE; + rc= memcached_do(ptr, server_key, buffer, send_length, 1); + if (rc != MEMCACHED_SUCCESS) + goto error; while (1) { - rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, 0); + rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, server_key); if (rc == MEMCACHED_STAT) { @@ -271,6 +267,7 @@ static memcached_return memcached_stats_fetch(memcached_st *ptr, break; } +error: if (rc == MEMCACHED_END) return MEMCACHED_SUCCESS; else @@ -283,13 +280,6 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur memcached_return rc; memcached_stat_st *stats; - rc= memcached_connect(ptr); - if (rc != MEMCACHED_SUCCESS) - { - *error= rc; - return NULL; - } - stats= (memcached_stat_st *)malloc(sizeof(memcached_st)*(ptr->number_of_hosts+1)); if (!stats) { @@ -299,10 +289,12 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur } memset(stats, 0, sizeof(memcached_st)*(ptr->number_of_hosts+1)); + rc= MEMCACHED_SUCCESS; for (x= 0; x < ptr->number_of_hosts; x++) { - rc= memcached_stats_fetch(ptr, stats+x, args, x); - if (rc != MEMCACHED_SUCCESS) + memcached_return temp_return; + temp_return= memcached_stats_fetch(ptr, stats+x, args, x); + if (temp_return != MEMCACHED_SUCCESS) rc= MEMCACHED_SOME_ERRORS; } @@ -320,11 +312,6 @@ memcached_return memcached_stat_servername(memcached_stat_st *stat, char *args, memcached_server_add(&memc, hostname, port); - rc= memcached_connect(&memc); - - if (rc != MEMCACHED_SUCCESS) - return rc; - rc= memcached_stats_fetch(&memc, stat, args, 0); memcached_free(&memc); @@ -355,3 +342,8 @@ char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *stat, return list; } + +void memcached_stat_free(memcached_st *ptr, memcached_stat_st *stat) +{ + free(stat); +}