Protected stdbool.h from being included by C++, which is invalid on Sun Studio.
[awesomized/libmemcached] / clients / memstat.c
index b8b02cfbff8be51194b2edab02bcdba2199ec1bd..42503d551ac8ce4242f98475b0d8e90d8f9bff8a 100644 (file)
@@ -1,3 +1,18 @@
+/* LibMemcached
+ * Copyright (C) 2006-2009 Brian Aker
+ * All rights reserved.
+ *
+ * Use and distribution licensed under the BSD license.  See
+ * the COPYING file in the parent directory for full text.
+ *
+ * Summary:
+ *
+ * Authors: 
+ *          Brian Aker
+ *          Toru Maesaka
+ */
+
+#include "libmemcached/common.h"
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -18,9 +33,9 @@
 
 /* Prototypes */
 static void options_parse(int argc, char *argv[]);
-static void run_analyzer(memcached_st *memc, memcached_stat_st *stat,
+static void run_analyzer(memcached_st *memc, memcached_stat_st *memc_stat,
                          memcached_server_st *server_list);
-static void print_server_listing(memcached_st *memc, memcached_stat_st *stat,
+static void print_server_listing(memcached_st *memc, memcached_stat_st *memc_stat,
                                  memcached_server_st *server_list);
 static void print_analysis_report(memcached_st *memc,
                                   memcached_analysis_st *report,
@@ -34,21 +49,21 @@ static char *analyze_mode= NULL;
 
 static struct option long_options[]=
 {
-  {"version", no_argument, NULL, OPT_VERSION},
-  {"help", no_argument, NULL, OPT_HELP},
-  {"verbose", no_argument, &opt_verbose, OPT_VERBOSE},
-  {"debug", no_argument, &opt_verbose, OPT_DEBUG},
-  {"servers", required_argument, NULL, OPT_SERVERS},
-  {"flag", no_argument, &opt_displayflag, OPT_FLAG},
-  {"analyze", optional_argument, NULL, OPT_ANALYZE},
+  {(OPTIONSTRING)"version", no_argument, NULL, OPT_VERSION},
+  {(OPTIONSTRING)"help", no_argument, NULL, OPT_HELP},
+  {(OPTIONSTRING)"verbose", no_argument, &opt_verbose, OPT_VERBOSE},
+  {(OPTIONSTRING)"debug", no_argument, &opt_verbose, OPT_DEBUG},
+  {(OPTIONSTRING)"servers", required_argument, NULL, OPT_SERVERS},
+  {(OPTIONSTRING)"flag", no_argument, &opt_displayflag, OPT_FLAG},
+  {(OPTIONSTRING)"analyze", optional_argument, NULL, OPT_ANALYZE},
   {0, 0, 0, 0},
 };
 
 int main(int argc, char *argv[])
 {
-  memcached_return rc;
+  memcached_return_t rc;
   memcached_st *memc;
-  memcached_stat_st *stat;
+  memcached_stat_st *memc_stat;
   memcached_server_st *servers;
   memcached_server_st *server_list;
 
@@ -74,7 +89,7 @@ int main(int argc, char *argv[])
   memcached_server_push(memc, servers);
   memcached_server_list_free(servers);
 
-  stat= memcached_stat(memc, NULL, &rc);
+  memc_stat= memcached_stat(memc, NULL, &rc);
 
   if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_SOME_ERRORS)
   {
@@ -86,11 +101,11 @@ int main(int argc, char *argv[])
   server_list= memcached_server_list(memc);
 
   if (opt_analyze)
-    run_analyzer(memc, stat, server_list);
+    run_analyzer(memc, memc_stat, server_list);
   else
-    print_server_listing(memc, stat, server_list);
+    print_server_listing(memc, memc_stat, server_list);
 
-  free(stat);
+  free(memc_stat);
   free(opt_servers);
 
   memcached_free(memc);
@@ -98,15 +113,15 @@ int main(int argc, char *argv[])
   return 0;
 }
 
-static void run_analyzer(memcached_st *memc, memcached_stat_st *stat,
+static void run_analyzer(memcached_st *memc, memcached_stat_st *memc_stat,
                          memcached_server_st *server_list)
 {
-  memcached_return rc;
+  memcached_return_t rc;
 
   if (analyze_mode == NULL)
   {
     memcached_analysis_st *report;
-    report= memcached_analyze(memc, stat, &rc);
+    report= memcached_analyze(memc, memc_stat, &rc);
     if (rc != MEMCACHED_SUCCESS || report == NULL)
     {
       printf("Failure to analyze servers (%s)\n",
@@ -135,9 +150,12 @@ static void run_analyzer(memcached_st *memc, memcached_stat_st *stat,
       if((servers[x]= memcached_create(NULL)) == NULL)
       {
         fprintf(stderr, "Failed to memcached_create()\n");
+        if (x > 0)
+          memcached_free(servers[0]);
         x--;
-        for (; x >= 0; x--)
+        for (; x > 0; x--)
           memcached_free(servers[x]);
+
         free(servers);
         return;
       }
@@ -164,12 +182,12 @@ static void run_analyzer(memcached_st *memc, memcached_stat_st *stat,
       }
       gettimeofday(&end_time, NULL);
 
-      elapsed_time= timedif(end_time, start_time);
-      elapsed_time /= num_of_tests;
+      elapsed_time= (long) timedif(end_time, start_time);
+      elapsed_time /= (long) num_of_tests;
 
       if (elapsed_time > slowest_time)
       {
-        slowest_server= x;
+        slowest_server= (long)x;
         slowest_time= elapsed_time;
       }
 
@@ -211,11 +229,11 @@ static void run_analyzer(memcached_st *memc, memcached_stat_st *stat,
   }
 }
 
-static void print_server_listing(memcached_st *memc, memcached_stat_st *stat,
+static void print_server_listing(memcached_st *memc, memcached_stat_st *memc_stat,
                                  memcached_server_st *server_list)
 {
   unsigned int x;
-  memcached_return rc;
+  memcached_return_t rc;
 
   printf("Listing %u Server\n\n", memcached_server_count(memc));
   for (x= 0; x < memcached_server_count(memc); x++)
@@ -223,14 +241,13 @@ static void print_server_listing(memcached_st *memc, memcached_stat_st *stat,
     char **list;
     char **ptr;
 
-    list= memcached_stat_get_keys(memc, &stat[x], &rc);
+    list= memcached_stat_get_keys(memc, &memc_stat[x], &rc);
 
     printf("Server: %s (%u)\n", memcached_server_name(memc, server_list[x]),
-           memcached_server_port(memc, server_list[x]));
+           (uint32_t)memcached_server_port(memc, server_list[x]));
     for (ptr= list; *ptr; ptr++)
     {
-      memcached_return rc;
-      char *value= memcached_stat_get_value(memc, &stat[x], *ptr, &rc);
+      char *value= memcached_stat_get_value(memc, &memc_stat[x], *ptr, &rc);
 
       printf("\t %s: %s\n", *ptr, value);
       free(value);
@@ -249,7 +266,7 @@ static void print_analysis_report(memcached_st *memc,
 
   printf("Memcached Cluster Analysis Report\n\n");
 
-  printf("\tNumber of Servers Analyzed         : %d\n", server_count);
+  printf("\tNumber of Servers Analyzed         : %u\n", server_count);
   printf("\tAverage Item Size (incl/overhead)  : %u bytes\n",
          report->average_item_size);
 
@@ -262,15 +279,15 @@ static void print_analysis_report(memcached_st *memc,
   printf("\n");
   printf("\tNode with most memory consumption  : %s:%u (%llu bytes)\n",
          memcached_server_name(memc, server_list[report->most_consumed_server]),
-         memcached_server_port(memc, server_list[report->most_consumed_server]),
+         (uint32_t)memcached_server_port(memc, server_list[report->most_consumed_server]),
          (unsigned long long)report->most_used_bytes);
   printf("\tNode with least free space         : %s:%u (%llu bytes remaining)\n",
          memcached_server_name(memc, server_list[report->least_free_server]),
-         memcached_server_port(memc, server_list[report->least_free_server]),
+         (uint32_t)memcached_server_port(memc, server_list[report->least_free_server]),
          (unsigned long long)report->least_remaining_bytes);
   printf("\tNode with longest uptime           : %s:%u (%us)\n",
          memcached_server_name(memc, server_list[report->oldest_server]),
-         memcached_server_port(memc, server_list[report->oldest_server]),
+         (uint32_t)memcached_server_port(memc, server_list[report->oldest_server]),
          report->longest_uptime);
   printf("\tPool-wide Hit Ratio                : %1.f%%\n", report->pool_hit_ratio);
   printf("\n");