- static struct option long_options[]=
- {
- {(OPTIONSTRING)"version", no_argument, NULL, OPT_VERSION},
- {(OPTIONSTRING)"help", no_argument, NULL, OPT_HELP},
- {(OPTIONSTRING)"quiet", no_argument, NULL, OPT_QUIET},
- {(OPTIONSTRING)"udp", no_argument, NULL, OPT_UDP},
- {(OPTIONSTRING)"buffer", no_argument, NULL, OPT_BUFFER},
- {(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", required_argument, NULL, OPT_FLAG},
- {(OPTIONSTRING)"expire", required_argument, NULL, OPT_EXPIRE},
- {(OPTIONSTRING)"set", no_argument, NULL, OPT_SET},
- {(OPTIONSTRING)"add", no_argument, NULL, OPT_ADD},
- {(OPTIONSTRING)"replace", no_argument, NULL, OPT_REPLACE},
- {(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},
- };
-
- bool opt_version= false;
- bool opt_help= false;
- int option_index= 0;
-
- while (1)
- {
- int option_rv= getopt_long(argc, argv, "Vhvds:", long_options, &option_index);
-
- if (option_rv == -1)
- break;
-
- switch (option_rv)
- {
- case 0:
- break;
-
- case OPT_BINARY:
- opt_binary= true;
- break;
-
- case OPT_VERBOSE: /* --verbose or -v */
- opt_verbose= OPT_VERBOSE;
- break;
-
- case OPT_DEBUG: /* --debug or -d */
- opt_verbose= OPT_DEBUG;
- break;
-
- case OPT_VERSION: /* --version or -V */
- opt_version= true;
- break;
-
- case OPT_HELP: /* --help or -h */
- opt_help= true;
- break;
-
- case OPT_SERVERS: /* --servers or -s */
- opt_servers= strdup(optarg);
- break;
-
- case OPT_FLAG: /* --flag */
- {
- bool strtol_error;
- opt_flags= (uint32_t)strtol_wrapper(optarg, 16, &strtol_error);
- if (strtol_error == true)
- {
- fprintf(stderr, "Bad value passed via --flag\n");
- exit(1);
- }
- }
- break;
-
- case OPT_EXPIRE: /* --expire */
- {
- bool strtol_error;
- opt_expires= (time_t)strtol_wrapper(optarg, 10, &strtol_error);
- if (strtol_error == true)
- {
- fprintf(stderr, "Bad value passed via --expire\n");
- exit(1);
- }