X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fmemrm.c;h=7b774d72d8122ae20041caf5dbe8a95b35266ba7;hb=347434b799ba94bd621df9a1d277ff8a36157f21;hp=acfbf53fd9bf62d60eb176bc1f9397773c141d74;hpb=ad33b231aaf0e26cc56050c50d0b023b70da335d;p=awesomized%2Flibmemcached diff --git a/src/memrm.c b/src/memrm.c index acfbf53f..7b774d72 100644 --- a/src/memrm.c +++ b/src/memrm.c @@ -9,6 +9,7 @@ static int opt_verbose= 0; static time_t opt_expire= 0; static char *opt_servers= NULL; +static char *opt_hash= NULL; #define PROGRAM_NAME "memrm" #define PROGRAM_DESCRIPTION "Erase a key or set of keys from a memcached cluster." @@ -31,10 +32,14 @@ int main(int argc, char *argv[]) if ((temp= getenv("MEMCACHED_SERVERS"))) opt_servers= strdup(temp); else + { + fprintf(stderr, "No Servers provided\n"); exit(1); + } } memc= memcached_create(NULL); + process_hash_option(memc, opt_hash); servers= memcached_servers_parse(opt_servers); memcached_server_push(memc, servers); @@ -50,8 +55,8 @@ int main(int argc, char *argv[]) { fprintf(stderr, "memrm: %s: memcache error %s", argv[optind], memcached_strerror(memc, rc)); - if (memc->my_errno) - fprintf(stderr, " system error %s", strerror(memc->my_errno)); + if (memc->cached_errno) + fprintf(stderr, " system error %s", strerror(memc->cached_errno)); fprintf(stderr, "\n"); } @@ -60,7 +65,10 @@ int main(int argc, char *argv[]) memcached_free(memc); - free(opt_servers); + if (opt_servers) + free(opt_servers); + if (opt_hash) + free(opt_hash); return 0; } @@ -81,6 +89,7 @@ void options_parse(int argc, char *argv[]) {"debug", no_argument, &opt_verbose, OPT_DEBUG}, {"servers", required_argument, NULL, OPT_SERVERS}, {"expire", required_argument, NULL, OPT_EXPIRE}, + {"hash", required_argument, NULL, OPT_HASH}, {0, 0, 0, 0}, }; int option_index= 0; @@ -112,6 +121,9 @@ void options_parse(int argc, char *argv[]) case OPT_EXPIRE: /* --expire */ opt_expire= (time_t)strtoll(optarg, (char **)NULL, 10); break; + case OPT_HASH: + opt_hash= strdup(optarg); + break; case '?': /* getopt_long already printed an error message. */ exit(1);