From c9b0e9c81335e098cdb256b1c58597cda96703b1 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 25 May 2017 00:28:45 +0200 Subject: 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 Tested-by: Petri Dish Buildbot Reviewed-by: Jakub Zawadzki Reviewed-by: Michael Mann --- sharkd_session.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'sharkd_session.c') 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 -- cgit v1.2.1