diff options
author | Milan Broz <mbroz@redhat.com> | 2011-03-08 13:27:39 +0000 |
---|---|---|
committer | Milan Broz <mbroz@redhat.com> | 2011-03-08 13:27:39 +0000 |
commit | 5a47eb762a4288ff7f7a9244b882f7fd96c69e0d (patch) | |
tree | 74157b067edb0adfc234d940498d7b4ea62f7662 /daemons/clvmd | |
parent | 5446fc8cea844a243a0f88dce7f1da3b9ad5ea69 (diff) | |
download | lvm2-5a47eb762a4288ff7f7a9244b882f7fd96c69e0d.tar.gz lvm2-5a47eb762a4288ff7f7a9244b882f7fd96c69e0d.tar.xz lvm2-5a47eb762a4288ff7f7a9244b882f7fd96c69e0d.zip |
Fix clvmd return code for bad options.
We should return exit code 2 for unknown option.
Patch also adds standard --help option instead.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=666991
Diffstat (limited to 'daemons/clvmd')
-rw-r--r-- | daemons/clvmd/clvmd.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c index b6fd7251..56600f93 100644 --- a/daemons/clvmd/clvmd.c +++ b/daemons/clvmd/clvmd.c @@ -20,6 +20,7 @@ #include "clvmd-common.h" #include <pthread.h> +#include <getopt.h> #include "clvmd-comms.h" #include "clvm.h" @@ -335,7 +336,7 @@ int main(int argc, char *argv[]) struct local_client *newfd; struct utsname nodeinfo; struct lvm_startup_params lvm_params; - signed char opt; + int opt; int cmd_timeout = DEFAULT_CMD_TIMEOUT; int start_timeout = 0; if_type_t cluster_iface = IF_AUTO; @@ -346,19 +347,21 @@ int main(int argc, char *argv[]) int clusterwide_opt = 0; mode_t old_mask; + struct option longopts[] = { + { "help", 0, 0, 'h' }, + { NULL, 0, 0, 0 } + }; + /* Deal with command-line arguments */ opterr = 0; optind = 0; - while ((opt = getopt(argc, argv, "?vVhfd::t:RST:CI:E:")) != EOF) { + while ((opt = getopt_long(argc, argv, "vVhfd::t:RST:CI:E:", + longopts, NULL)) != -1) { switch (opt) { case 'h': usage(argv[0], stdout); exit(0); - case '?': - usage(argv[0], stderr); - exit(0); - case 'R': check_permissions(); return refresh_clvmd(1)==1?0:1; @@ -409,6 +412,9 @@ int main(int argc, char *argv[]) exit(0); break; + default: + usage(argv[0], stderr); + exit(2); } } |