aboutsummaryrefslogtreecommitdiff
path: root/example/ndpiReader.c
diff options
context:
space:
mode:
authorToni <matzeton@googlemail.com>2024-02-02 15:15:30 +0100
committerGitHub <noreply@github.com>2024-02-02 15:15:30 +0100
commitede25cc2b33d809a92dab6a64ba82ab9b4818ae1 (patch)
treedeb73701aaf67084ea2afe462302e5e4dde5706b /example/ndpiReader.c
parentf8aa642c3cfad00abed77cd24b7c81f940f00c96 (diff)
Improve `ndpi_set_config` error printing. (#2300)
* exit `ndpiReader` if a invalid configuration setting detected Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'example/ndpiReader.c')
-rw-r--r--example/ndpiReader.c40
1 files changed, 34 insertions, 6 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index 6cce7b48f..3185c920a 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -397,6 +397,28 @@ void ndpiCheckHostStringMatch(char *testChar) {
/* *********************************************** */
+static char const *
+ndpi_cfg_error2string(ndpi_cfg_error const err)
+{
+ switch (err)
+ {
+ case NDPI_CFG_INVALID_CONTEXT:
+ return "Invalid context";
+ case NDPI_CFG_NOT_FOUND:
+ return "Configuration not found";
+ case NDPI_CFG_INVALID_PARAM:
+ return "Invalid configuration parameter";
+ case NDPI_CFG_CONTEXT_ALREADY_INITIALIZED:
+ return "Configuration context already initialized";
+ case NDPI_CFG_CALLBACK_ERROR:
+ return "Configuration callback error";
+ case NDPI_CFG_OK:
+ return "Success";
+ }
+
+ return "Unknown";
+}
+
static void ndpiCheckIPMatch(char *testChar) {
struct ndpi_detection_module_struct *ndpi_str;
u_int16_t ret = NDPI_PROTOCOL_UNKNOWN;
@@ -422,9 +444,12 @@ static void ndpiCheckIPMatch(char *testChar) {
for(i = 0; i < num_cfgs; i++) {
rc = ndpi_set_config(ndpi_str,
cfgs[i].proto, cfgs[i].param, cfgs[i].value);
- if (rc != NDPI_CFG_OK)
- fprintf(stderr, "Error setting config [%s][%s][%s]: %d\n",
- cfgs[i].proto, cfgs[i].param, cfgs[i].value, rc);
+ if (rc != NDPI_CFG_OK) {
+ fprintf(stderr, "Error setting config [%s][%s][%s]: %s (%d)\n",
+ (cfgs[i].proto != NULL ? cfgs[i].proto : ""),
+ cfgs[i].param, cfgs[i].value, ndpi_cfg_error2string(rc), rc);
+ exit(-1);
+ }
}
ndpi_finalize_initialization(ndpi_str);
@@ -2873,9 +2898,12 @@ static void setupDetection(u_int16_t thread_id, pcap_t * pcap_handle,
for(i = 0; i < num_cfgs; i++) {
rc = ndpi_set_config(ndpi_thread_info[thread_id].workflow->ndpi_struct,
cfgs[i].proto, cfgs[i].param, cfgs[i].value);
- if (rc != NDPI_CFG_OK)
- fprintf(stderr, "Error setting config [%s][%s][%s]: %d\n",
- cfgs[i].proto, cfgs[i].param, cfgs[i].value, rc);
+ if (rc != NDPI_CFG_OK) {
+ fprintf(stderr, "Error setting config [%s][%s][%s]: %s (%d)\n",
+ (cfgs[i].proto != NULL ? cfgs[i].proto : ""),
+ cfgs[i].param, cfgs[i].value, ndpi_cfg_error2string(rc), rc);
+ exit(-1);
+ }
}
if(enable_doh_dot_detection)