X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=clients%2Fmemdump.c;h=40ab430a4ceca1a0b339569068c02b1b2173217e;hb=4aa2f33b41edf38fcab43010e9e57bf0a512d240;hp=582939fab52eef989fcb0ca35dd162c42996f6b1;hpb=521e830fe336a17bee6e7376e3bf01a3b35ddc37;p=m6w6%2Flibmemcached diff --git a/clients/memdump.c b/clients/memdump.c index 582939fa..40ab430a 100644 --- a/clients/memdump.c +++ b/clients/memdump.c @@ -32,16 +32,18 @@ #define PROGRAM_DESCRIPTION "Dump all values from one or many servers." /* Prototypes */ -void options_parse(int argc, char *argv[]); +static void options_parse(int argc, char *argv[]); static int opt_binary=0; static int opt_verbose= 0; static char *opt_servers= NULL; static char *opt_hash= NULL; +static char *opt_username; +static char *opt_passwd; /* Print the keys and counter how many were found */ -static memcached_return_t key_printer(memcached_st *ptr __attribute__((unused)), - const char *key, size_t key_length, +static memcached_return_t key_printer(const memcached_st *ptr __attribute__((unused)), + const char *key, size_t key_length, void *context __attribute__((unused))) { printf("%.*s\n", (uint32_t)key_length, key); @@ -85,6 +87,11 @@ int main(int argc, char *argv[]) memcached_server_list_free(servers); memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, (uint64_t)opt_binary); + if (!initialize_sasl(memc, opt_username, opt_passwd)) + { + memcached_free(memc); + return 1; + } rc= memcached_dump(memc, callbacks, NULL, 1); @@ -103,10 +110,12 @@ int main(int argc, char *argv[]) if (opt_hash) free(opt_hash); + shutdown_sasl(); + return 0; } -void options_parse(int argc, char *argv[]) +static void options_parse(int argc, char *argv[]) { int option_index= 0; int option_rv; @@ -120,10 +129,12 @@ void options_parse(int argc, char *argv[]) {(OPTIONSTRING)"servers", required_argument, NULL, OPT_SERVERS}, {(OPTIONSTRING)"hash", required_argument, NULL, OPT_HASH}, {(OPTIONSTRING)"binary", no_argument, NULL, OPT_BINARY}, + {(OPTIONSTRING)"username", required_argument, NULL, OPT_USERNAME}, + {(OPTIONSTRING)"password", required_argument, NULL, OPT_PASSWD}, {0, 0, 0, 0} }; - while (1) + while (1) { option_rv= getopt_long(argc, argv, "Vhvds:", long_options, &option_index); @@ -154,6 +165,12 @@ void options_parse(int argc, char *argv[]) case OPT_HASH: opt_hash= strdup(optarg); break; + case OPT_USERNAME: + opt_username= optarg; + break; + case OPT_PASSWD: + opt_passwd= optarg; + break; case '?': /* getopt_long already printed an error message. */ exit(1);