projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix bug in calling parse_opt_servers
[m6w6/libmemcached]
/
src
/
memcat.c
diff --git
a/src/memcat.c
b/src/memcat.c
index 11b42d7d4aec9ddb7b743effc292418a32c0df31..d336067687992108c0eeaeb91d700b228370038f 100644
(file)
--- a/
src/memcat.c
+++ b/
src/memcat.c
@@
-10,8
+10,8
@@
/* Prototypes */
\r
void options_parse(int argc, char *argv[]);
\r
\r
/* Prototypes */
\r
void options_parse(int argc, char *argv[]);
\r
\r
-static int opt_verbose;
\r
-static int opt_displayflag;
\r
+static int opt_verbose
= 0
;
\r
+static int opt_displayflag
= 0
;
\r
static char *opt_servers;
\r
\r
int main(int argc, char *argv[])
\r
static char *opt_servers;
\r
\r
int main(int argc, char *argv[])
\r
@@
-19,49
+19,64
@@
int main(int argc, char *argv[])
memcached_st *memc;
\r
char *string;
\r
size_t string_length;
\r
memcached_st *memc;
\r
char *string;
\r
size_t string_length;
\r
- uint16_t
flags;
\r
+ uint16_t flags;
\r
memcached_return rc;
\r
\r
memc= memcached_init(NULL);
\r
\r
options_parse(argc, argv);
\r
\r
memcached_return rc;
\r
\r
memc= memcached_init(NULL);
\r
\r
options_parse(argc, argv);
\r
\r
- parse_opt_servers(memc, opt_servers);
\r
+ if (opt_servers)
\r
+ parse_opt_servers(memc, opt_servers);
\r
\r
\r
- while (optind <
=
argc)
\r
+ while (optind < argc)
\r
{
\r
{
\r
- string= memcached_get(memc, argv[
argc], strlen(argv[argc
]),
\r
+ string= memcached_get(memc, argv[
optind], strlen(argv[optind
]),
\r
&string_length, &flags, &rc);
\r
if (rc == MEMCACHED_SUCCESS)
\r
{
\r
&string_length, &flags, &rc);
\r
if (rc == MEMCACHED_SUCCESS)
\r
{
\r
- if (opt_displayflag)
\r
- printf("%d\n", flags);
\r
+ if (opt_displayflag)
\r
+ {
\r
+ if (opt_verbose)
\r
+ printf("key: %s\nflags: ", argv[optind]);
\r
+ printf("%x\n", flags);
\r
+ }
\r
else
\r
{
\r
else
\r
{
\r
- printf("%.*s\n", string_length, string);
\r
+ if (opt_verbose)
\r
+ printf("key: %s\nflags: %x\nlength: %zu\nvalue: ",
\r
+ argv[optind], flags, string_length);
\r
+ printf("%.*s\n", (int)string_length, string);
\r
free(string);
\r
}
\r
}
\r
free(string);
\r
}
\r
}
\r
+ else
\r
+ {
\r
+ fprintf(stderr, "memcat: %s: memcache error %s\n",
\r
+ argv[optind], memcached_strerror(memc, rc));
\r
+ }
\r
optind++;
\r
}
\r
\r
memcached_deinit(memc);
\r
\r
optind++;
\r
}
\r
\r
memcached_deinit(memc);
\r
\r
+ free(opt_servers);
\r
+
\r
return 0;
\r
};
\r
\r
\r
void options_parse(int argc, char *argv[])
\r
{
\r
return 0;
\r
};
\r
\r
\r
void options_parse(int argc, char *argv[])
\r
{
\r
- int option_index
= 0;
\r
+ int option_index= 0;
\r
int option_rv;
\r
\r
int option_rv;
\r
\r
- static struct option long_options[]
=
\r
+ static struct option long_options[]=
\r
{
\r
{"version", no_argument, NULL, OPT_VERSION},
\r
{"help", no_argument, NULL, OPT_HELP},
\r
{
\r
{"version", no_argument, NULL, OPT_VERSION},
\r
{"help", no_argument, NULL, OPT_HELP},
\r
- {"verbose", no_argument, &opt_verbose,
1
},
\r
- {"debug", no_argument, &opt_verbose,
2
},
\r
+ {"verbose", no_argument, &opt_verbose,
OPT_VERBOSE
},
\r
+ {"debug", no_argument, &opt_verbose,
OPT_DEBUG
},
\r
{"servers", required_argument, NULL, OPT_SERVERS},
\r
{"flag", no_argument, &opt_displayflag, OPT_FLAG},
\r
{0, 0, 0, 0},
\r
{"servers", required_argument, NULL, OPT_SERVERS},
\r
{"flag", no_argument, &opt_displayflag, OPT_FLAG},
\r
{0, 0, 0, 0},
\r
@@
-69,21
+84,28
@@
void options_parse(int argc, char *argv[])
\r
while (1)
\r
{
\r
\r
while (1)
\r
{
\r
- option_rv
= getopt_long(argc, argv, "
", long_options, &option_index);
\r
+ option_rv
= getopt_long(argc, argv, "Vhvds:
", long_options, &option_index);
\r
if (option_rv == -1) break;
\r
if (option_rv == -1) break;
\r
- switch (option_rv) {
\r
+ switch (option_rv)
\r
+ {
\r
case 0:
\r
break;
\r
case 0:
\r
break;
\r
- case OPT_VERSION: /* --version */
\r
+ case OPT_VERBOSE: /* --verbose or -v */
\r
+ opt_verbose = OPT_VERBOSE;
\r
+ break;
\r
+ case OPT_DEBUG: /* --debug or -d */
\r
+ opt_verbose = OPT_DEBUG;
\r
+ break;
\r
+ case OPT_VERSION: /* --version or -V */
\r
printf("memcache tools, memcat, v1.0\n");
\r
exit(0);
\r
break;
\r
printf("memcache tools, memcat, v1.0\n");
\r
exit(0);
\r
break;
\r
- case OPT_HELP: /* --help */
\r
+ case OPT_HELP: /* --help
or -h
*/
\r
printf("useful help messages go here\n");
\r
exit(0);
\r
break;
\r
printf("useful help messages go here\n");
\r
exit(0);
\r
break;
\r
- case OPT_SERVERS: /* --servers */
\r
- opt_servers=
optarg
;
\r
+ case OPT_SERVERS: /* --servers
or -s
*/
\r
+ opt_servers=
strdup(optarg)
;
\r
break;
\r
case '?':
\r
/* getopt_long already printed an error message. */
\r
break;
\r
case '?':
\r
/* getopt_long already printed an error message. */
\r