summaryrefslogtreecommitdiffstats
path: root/daemons/clvmd
diff options
context:
space:
mode:
authorMilan Broz <mbroz@redhat.com>2011-03-08 13:27:39 +0000
committerMilan Broz <mbroz@redhat.com>2011-03-08 13:27:39 +0000
commit5a47eb762a4288ff7f7a9244b882f7fd96c69e0d (patch)
tree74157b067edb0adfc234d940498d7b4ea62f7662 /daemons/clvmd
parent5446fc8cea844a243a0f88dce7f1da3b9ad5ea69 (diff)
downloadlvm2-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.c18
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);
}
}