From 523360001e4c9e64d875febd9f024daa2691c31a Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Sat, 6 Aug 2022 20:06:56 +0200 Subject: HTTP, Bittorrent, Kerberos: fix stopping of extra dissection (#1700) The return value of the extra-dissection callback indicates if the extra dissection needs to be called again. In the HTTP cose, this setting to NULL of the callabck is wrong since we stop extra dissection only if we have a hostname *and* a return code. --- src/lib/protocols/bittorrent.c | 2 +- src/lib/protocols/http.c | 1 - src/lib/protocols/kerberos.c | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/lib/protocols/bittorrent.c b/src/lib/protocols/bittorrent.c index ba88c01e5..c28c8bcd4 100644 --- a/src/lib/protocols/bittorrent.c +++ b/src/lib/protocols/bittorrent.c @@ -54,7 +54,7 @@ static int search_bittorrent_again(struct ndpi_detection_module_struct *ndpi_str ndpi_search_bittorrent_hash(ndpi_struct, flow, -1); /* Possibly more processing */ - return(1); + return flow->extra_packets_func != NULL; } /* *********************************************** */ diff --git a/src/lib/protocols/http.c b/src/lib/protocols/http.c index cf3e364be..7d13a29fc 100644 --- a/src/lib/protocols/http.c +++ b/src/lib/protocols/http.c @@ -720,7 +720,6 @@ static void check_content_type_and_change_protocol(struct ndpi_detection_module_ /* Copy result for nDPI apps */ ndpi_hostname_sni_set(flow, packet->host_line.ptr, packet->host_line.len); - flow->extra_packets_func = NULL; /* We're good now */ if(strlen(flow->host_server_name) > 0) { ndpi_check_dga_name(ndpi_struct, flow, flow->host_server_name, 1); diff --git a/src/lib/protocols/kerberos.c b/src/lib/protocols/kerberos.c index e7063d010..943ebe168 100644 --- a/src/lib/protocols/kerberos.c +++ b/src/lib/protocols/kerberos.c @@ -693,7 +693,7 @@ static int ndpi_search_kerberos_extra(struct ndpi_detection_module_struct *ndpi_ ndpi_search_kerberos(ndpi_struct, flow); /* Possibly more processing */ - return 1; + return flow->extra_packets_func != NULL; } void init_kerberos_dissector(struct ndpi_detection_module_struct *ndpi_struct, -- cgit v1.2.3