diff options
author | Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> | 2022-08-06 20:06:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-06 20:06:56 +0200 |
commit | 523360001e4c9e64d875febd9f024daa2691c31a (patch) | |
tree | 0faa49db9ad9ae71c631390f9d17ab5d9b4c3975 /src/lib | |
parent | 120e01566a32e1aa4c7c8179165d035c1864cfb3 (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.c | 2 | ||||
-rw-r--r-- | src/lib/protocols/http.c | 1 | ||||
-rw-r--r-- | src/lib/protocols/kerberos.c | 2 |
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, |