summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/opt.c8
-rwxr-xr-xsrc/test/test1.sh3
2 files changed, 9 insertions, 2 deletions
diff --git a/src/opt.c b/src/opt.c
index 7a0f346..bd0bc52 100644
--- a/src/opt.c
+++ b/src/opt.c
@@ -240,7 +240,7 @@ static int perf_opt_long_parse(char* optarg)
if ((arg = strchr(optarg, '='))) {
arg++;
- optlen = arg - optarg;
+ optlen = strlen(arg);
if (optlen < 1) {
return -1;
}
@@ -305,7 +305,11 @@ void perf_long_opt_usage(void)
fprintf(stderr, "Usage: %s ... -O <name>[=<value>] ...\n\nAvailable long options:\n", progname);
long_opt_t* opt = longopts;
while (opt) {
- fprintf(stderr, " %s%s: %s", opt->name, opt->type != perf_opt_boolean ? "=<val>" : "", opt->help);
+ if (opt->type == perf_opt_boolean) {
+ fprintf(stderr, " %s: %s", opt->name, opt->help);
+ } else {
+ fprintf(stderr, " %s=<%s>: %s", opt->name, opt->desc ? opt->desc : "val", opt->help);
+ }
if (opt->defval) {
fprintf(stderr, " (default: %s)", opt->defval);
}
diff --git a/src/test/test1.sh b/src/test/test1.sh
index cd6af3c..a289c99 100755
--- a/src/test/test1.sh
+++ b/src/test/test1.sh
@@ -7,3 +7,6 @@
! ../dnsperf -O suppress=
! ../resperf -O suppress
! ../resperf -O suppress=
+
+# test for broken long opt in v2.11.0
+../dnsperf -O suppress=test 2>&1 |grep -q "unknown message type to suppress: test"