aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2022-08-06 20:06:56 +0200
committerGitHub <noreply@github.com>2022-08-06 20:06:56 +0200
commit523360001e4c9e64d875febd9f024daa2691c31a (patch)
tree0faa49db9ad9ae71c631390f9d17ab5d9b4c3975 /src/lib
parent120e01566a32e1aa4c7c8179165d035c1864cfb3 (diff)
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.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/protocols/bittorrent.c2
-rw-r--r--src/lib/protocols/http.c1
-rw-r--r--src/lib/protocols/kerberos.c2
3 files changed, 2 insertions, 3 deletions
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,