Protected stdbool.h from being included by C++, which is invalid on Sun Studio.
[awesomized/libmemcached] / clients / memslap.c
index 298453dda31727fafc7da54c87c7b41db47c615b..47be3c37e63e4dfac8052c002c6e4b3e4d793d22 100644 (file)
@@ -13,6 +13,7 @@
  *      Mingqiang Zhuang <mingqiangzhuang@hengtiansoft.com>
  *
  */
+#include <stdlib.h>
 #include <getopt.h>
 #include <limits.h>
 
 #define PROGRAM_DESCRIPTION \
                         "Generates workload against memcached servers."
 
+#ifdef __sun
+  /* For some odd reason the option struct on solaris defines the argument
+   * as char* and not const char*
+   */
+#define OPTIONSTRING char*
+#else
+#define OPTIONSTRING const char*
+#endif
+
 /* options */
 static struct option long_options[]=
 {
-  { "servers",        required_argument,            NULL,
+  { (OPTIONSTRING)"servers",        required_argument,            NULL,
     OPT_SERVERS            },
-  { "threads",        required_argument,            NULL,
+  { (OPTIONSTRING)"threads",        required_argument,            NULL,
     OPT_THREAD_NUMBER      },
-  { "concurrency",    required_argument,            NULL,
+  { (OPTIONSTRING)"concurrency",    required_argument,            NULL,
     OPT_CONCURRENCY        },
-  { "conn_sock",      required_argument,            NULL,
+  { (OPTIONSTRING)"conn_sock",      required_argument,            NULL,
     OPT_SOCK_PER_CONN      },
-  { "execute_number", required_argument,            NULL,
+  { (OPTIONSTRING)"execute_number", required_argument,            NULL,
     OPT_EXECUTE_NUMBER     },
-  { "time",           required_argument,            NULL,
+  { (OPTIONSTRING)"time",           required_argument,            NULL,
     OPT_TIME               },
-  { "cfg_cmd",        required_argument,            NULL,
+  { (OPTIONSTRING)"cfg_cmd",        required_argument,            NULL,
     OPT_CONFIG_CMD         },
-  { "win_size",       required_argument,            NULL,
+  { (OPTIONSTRING)"win_size",       required_argument,            NULL,
     OPT_WINDOW_SIZE        },
-  { "fixed_size",     required_argument,            NULL,
+  { (OPTIONSTRING)"fixed_size",     required_argument,            NULL,
     OPT_FIXED_LTH          },
-  { "verify",         required_argument,            NULL,
+  { (OPTIONSTRING)"verify",         required_argument,            NULL,
     OPT_VERIFY             },
-  { "division",       required_argument,            NULL,
+  { (OPTIONSTRING)"division",       required_argument,            NULL,
     OPT_GETS_DIVISION      },
-  { "stat_freq",      required_argument,            NULL,
+  { (OPTIONSTRING)"stat_freq",      required_argument,            NULL,
     OPT_STAT_FREQ          },
-  { "exp_verify",     required_argument,            NULL,
+  { (OPTIONSTRING)"exp_verify",     required_argument,            NULL,
     OPT_EXPIRE             },
-  { "overwrite",      required_argument,            NULL,
+  { (OPTIONSTRING)"overwrite",      required_argument,            NULL,
     OPT_OVERWRITE          },
-  { "reconnect",      no_argument,                  NULL,
+  { (OPTIONSTRING)"reconnect",      no_argument,                  NULL,
     OPT_RECONNECT          },
-  { "udp",            no_argument,                  NULL,
+  { (OPTIONSTRING)"udp",            no_argument,                  NULL,
     OPT_UDP                },
-  { "facebook",       no_argument,                  NULL,
+  { (OPTIONSTRING)"facebook",       no_argument,                  NULL,
     OPT_FACEBOOK_TEST      },
-  { "binary",         no_argument,                  NULL,
+  { (OPTIONSTRING)"binary",         no_argument,                  NULL,
     OPT_BINARY_PROTOCOL    },
-  { "tps",            required_argument,            NULL,
+  { (OPTIONSTRING)"tps",            required_argument,            NULL,
     OPT_TPS                },
-  { "rep_write",      required_argument,            NULL,
+  { (OPTIONSTRING)"rep_write",      required_argument,            NULL,
     OPT_REP_WRITE_SRV      },
-  { "verbose",        no_argument,                  NULL,
+  { (OPTIONSTRING)"verbose",        no_argument,                  NULL,
     OPT_VERBOSE            },
-  { "help",           no_argument,                  NULL,
+  { (OPTIONSTRING)"help",           no_argument,                  NULL,
     OPT_HELP               },
-  { "version",        no_argument,                  NULL,
+  { (OPTIONSTRING)"version",        no_argument,                  NULL,
     OPT_VERSION            },
-  { 0,                0,                            0,                 0                      },
+  { 0, 0, 0, 0 },
 };
 
 /* Prototypes */
@@ -154,7 +164,7 @@ static void ms_global_struct_destroy()
  */
 static void ms_version_command(const char *command_name)
 {
-  printf("%s v%u.%u\n", command_name, 1, 0);
+  printf("%s v%u.%u\n", command_name, 1U, 0U);
   exit(0);
 }
 
@@ -277,7 +287,7 @@ void ms_help_command(const char *command_name, const char *description)
 {
   char *help_message= NULL;
 
-  printf("%s v%u.%u\n", command_name, 1, 0);
+  printf("%s v%u.%u\n", command_name, 1U, 0U);
   printf("    %s\n\n", description);
   printf(
     "Usage:\n"