aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Tüxen <tuexen@fh-muenster.de>2011-05-31 14:45:55 +0000
committerMichael Tüxen <tuexen@fh-muenster.de>2011-05-31 14:45:55 +0000
commit6516aa9864d056fd327de0a1c76ed11ccea00317 (patch)
treed73b5156e9060106763603e5d77e9dd405b7a359
parentad2d4694df7402a6bd63cb699808e93f7be20600 (diff)
Improve handling of command line errors.
svn path=/trunk/; revision=37477
-rw-r--r--dumpcap.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/dumpcap.c b/dumpcap.c
index c1176574db..9467ab54e1 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -4065,28 +4065,29 @@ main(int argc, char *argv[])
machine_readable = TRUE;
break;
default:
- case '?': /* Bad flag - print usage message */
cmdarg_err("Invalid Option: %s", argv[optind-1]);
+ case '?': /* Bad flag - print usage message */
arg_error = TRUE;
break;
}
}
- argc -= optind;
- argv += optind;
- if (argc >= 1) {
- /* user specified file name as regular command-line argument */
- /* XXX - use it as the capture file name (or something else)? */
- argc--;
- argv++;
- }
-
- if (argc != 0) {
- /*
- * Extra command line arguments were specified; complain.
- * XXX - interpret as capture filter, as tcpdump and tshark do?
- */
- cmdarg_err("Invalid argument: %s", argv[0]);
- arg_error = TRUE;
+ if (!arg_error) {
+ argc -= optind;
+ argv += optind;
+ if (argc >= 1) {
+ /* user specified file name as regular command-line argument */
+ /* XXX - use it as the capture file name (or something else)? */
+ argc--;
+ argv++;
+ }
+ if (argc != 0) {
+ /*
+ * Extra command line arguments were specified; complain.
+ * XXX - interpret as capture filter, as tcpdump and tshark do?
+ */
+ cmdarg_err("Invalid argument: %s", argv[0]);
+ arg_error = TRUE;
+ }
}
if (arg_error) {