diff options
author | Peter Wu <peter@lekensteyn.nl> | 2017-05-25 00:28:45 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-05-26 17:31:01 +0000 |
commit | c9b0e9c81335e098cdb256b1c58597cda96703b1 (patch) | |
tree | f0e2f87b53b2b9e45e90fb4c5195f008beb7e1dc /rawshark.c | |
parent | 940165933fea699b7592ea2b5f128bac27b443b5 (diff) |
Report syntax errors in UAT prefs parsing
Add the cause for a syntax error while parsing UATs. Example output:
$ tshark -ouat:ssl_keys:,
tshark: Invalid -o flag "uat:ssl_keys:,": ssl_keys:1: No IP address given.
$ tshark -ouat:unknown:,
tshark: Invalid -o flag "uat:unknown:,": Unknown preference
Change-Id: I549406c4e31a81d29f487ef47bdb3c22da084947
Reviewed-on: https://code.wireshark.org/review/21748
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'rawshark.c')
-rw-r--r-- | rawshark.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/rawshark.c b/rawshark.c index bcb2f8ca5d..6454ab1a78 100644 --- a/rawshark.c +++ b/rawshark.c @@ -370,6 +370,7 @@ set_link_type(const char *lt_arg) { long val; dissector_handle_t dhandle; GString *pref_str; + char *errmsg = NULL; if (!spec_ptr) return FALSE; @@ -410,8 +411,9 @@ set_link_type(const char *lt_arg) { g_string_append_printf(pref_str, "\"User 0 (DLT=147)\",\"%s\",\"0\",\"\",\"0\",\"\"", spec_ptr); - if (prefs_set_pref(pref_str->str) != PREFS_SET_OK) { + if (prefs_set_pref(pref_str->str, &errmsg) != PREFS_SET_OK) { g_string_free(pref_str, TRUE); + g_free(errmsg); return FALSE; } g_string_free(pref_str, TRUE); @@ -620,13 +622,18 @@ main(int argc, char *argv[]) } break; case 'o': /* Override preference from command line */ - switch (prefs_set_pref(optarg)) { + { + char *errmsg = NULL; + + switch (prefs_set_pref(optarg, &errmsg)) { case PREFS_SET_OK: break; case PREFS_SET_SYNTAX_ERR: - cmdarg_err("Invalid -o flag \"%s\"", optarg); + cmdarg_err("Invalid -o flag \"%s\"%s%s", optarg, + errmsg ? ": " : "", errmsg ? errmsg : ""); + g_free(errmsg); ret = INVALID_OPTION; goto clean_exit; break; @@ -639,6 +646,7 @@ main(int argc, char *argv[]) break; } break; + } case 'p': /* Expect pcap_pkthdr packet headers, which may have 64-bit timestamps */ want_pcap_pkthdr = TRUE; break; |