diff options
author | Michael Tüxen <tuexen@fh-muenster.de> | 2011-05-31 14:45:55 +0000 |
---|---|---|
committer | Michael Tüxen <tuexen@fh-muenster.de> | 2011-05-31 14:45:55 +0000 |
commit | 6516aa9864d056fd327de0a1c76ed11ccea00317 (patch) | |
tree | d73b5156e9060106763603e5d77e9dd405b7a359 /dumpcap.c | |
parent | ad2d4694df7402a6bd63cb699808e93f7be20600 (diff) |
Improve handling of command line errors.
svn path=/trunk/; revision=37477
Diffstat (limited to 'dumpcap.c')
-rw-r--r-- | dumpcap.c | 35 |
1 files changed, 18 insertions, 17 deletions
@@ -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) { |