summaryrefslogtreecommitdiff
path: root/sharkd_session.c
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2017-05-25 00:28:45 +0200
committerMichael Mann <mmann78@netscape.net>2017-05-26 17:31:01 +0000
commitc9b0e9c81335e098cdb256b1c58597cda96703b1 (patch)
treef0e2f87b53b2b9e45e90fb4c5195f008beb7e1dc /sharkd_session.c
parent940165933fea699b7592ea2b5f128bac27b443b5 (diff)
downloadwireshark-c9b0e9c81335e098cdb256b1c58597cda96703b1.tar.gz
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 'sharkd_session.c')
-rw-r--r--sharkd_session.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sharkd_session.c b/sharkd_session.c
index 3ea1e3f125..6dc6f3b84d 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -3073,6 +3073,7 @@ sharkd_session_process_setconf(char *buf, const jsmntok_t *tokens, int count)
const char *tok_name = json_find_attr(buf, tokens, count, "name");
const char *tok_value = json_find_attr(buf, tokens, count, "value");
char pref[4096];
+ char *errmsg = NULL;
prefs_set_pref_e ret;
@@ -3081,8 +3082,15 @@ sharkd_session_process_setconf(char *buf, const jsmntok_t *tokens, int count)
ws_snprintf(pref, sizeof(pref), "%s:%s", tok_name, tok_value);
- ret = prefs_set_pref(pref);
- printf("{\"err\":%d}\n", ret);
+ ret = prefs_set_pref(pref, &errmsg);
+ printf("{\"err\":%d", ret);
+ if (errmsg) {
+ /* Add error message for some syntax errors. */
+ printf(",\"errmsg\":");
+ json_puts_string(errmsg);
+ }
+ printf("}\n");
+ g_free(errmsg);
}
struct sharkd_session_process_dumpconf_data