aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2023-12-12 19:44:29 +0100
committerGitHub <noreply@github.com>2023-12-12 19:44:29 +0100
commit8e14aac5e0670c281a35433e63c7cfa5634f72df (patch)
tree061a429bd85115eb59be8a6966c363ad62aebe41
parent241c42ad7ed67872aba064c5ffa5aeb0b274c527 (diff)
ndpiReader: avoid creating two detection modules when processing traffic/traces (#2209)
-rw-r--r--example/ndpiReader.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index 7ad8ff95d..919a7963d 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -122,7 +122,6 @@ static struct bpf_program *bpf_cfilter = NULL;
static time_t capture_for = 0;
static time_t capture_until = 0;
static u_int32_t num_flows;
-static struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
extern u_int8_t enable_doh_dot_detection;
extern u_int32_t max_num_packets_per_flow, max_packet_payload_dissection, max_num_reported_top_payloads;
@@ -617,8 +616,7 @@ static void help(u_int long_help) {
sizeof(((struct ndpi_flow_struct *)0)->protos));
NDPI_PROTOCOL_BITMASK all;
-
- ndpi_info_mod = ndpi_init_detection_module(init_prefs);
+ struct ndpi_detection_module_struct *ndpi_info_mod = ndpi_init_detection_module(init_prefs);
printf("\n\nnDPI supported protocols:\n");
printf("%3s %-22s %-10s %-8s %-12s %s\n",
"Id", "Protocol", "Layer_4", "Nw_Proto", "Breed", "Category");
@@ -756,7 +754,7 @@ void extcap_config() {
ndpi_proto_defaults_t *proto_defaults;
#endif
- ndpi_info_mod = ndpi_init_detection_module(init_prefs);
+ struct ndpi_detection_module_struct *ndpi_info_mod = ndpi_init_detection_module(init_prefs);
#if 0
ndpi_num_supported_protocols = ndpi_get_ndpi_num_supported_protocols(ndpi_info_mod);
proto_defaults = ndpi_get_proto_defaults(ndpi_info_mod);
@@ -1256,9 +1254,13 @@ static void parseOptions(int argc, char **argv) {
break;
case '9':
+ {
+ struct ndpi_detection_module_struct *ndpi_info_mod = ndpi_init_detection_module(init_prefs);
extcap_packet_filter = ndpi_get_proto_by_name(ndpi_info_mod, optarg);
if(extcap_packet_filter == NDPI_PROTOCOL_UNKNOWN) extcap_packet_filter = atoi(optarg);
+ ndpi_exit_detection_module(ndpi_info_mod);
break;
+ }
case 'T':
max_num_tcp_dissected_pkts = atoi(optarg);
@@ -5605,10 +5607,6 @@ int main(int argc, char **argv) {
ac_automata_enable_debug(1);
parseOptions(argc, argv);
- ndpi_info_mod = ndpi_init_detection_module(init_prefs);
-
- if(ndpi_info_mod == NULL) return -1;
-
if(domain_to_check) {
ndpiCheckHostStringMatch(domain_to_check);
exit(0);
@@ -5650,7 +5648,6 @@ int main(int argc, char **argv) {
if(results_file) fclose(results_file);
if(extcap_dumper) pcap_dump_close(extcap_dumper);
if(extcap_fifo_h) pcap_close(extcap_fifo_h);
- if(ndpi_info_mod) ndpi_exit_detection_module(ndpi_info_mod);
if(enable_malloc_bins) ndpi_free_bin(&malloc_bins);
if(csv_fp) fclose(csv_fp);