aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_utils.c
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2021-01-07 10:55:23 +0100
committerGitHub <noreply@github.com>2021-01-07 10:55:23 +0100
commitb8a5358e8010f5e46df528b440cd9cc26910fdb9 (patch)
tree514fe84e7e308cc443ed001601e99834ac2c1d32 /src/lib/ndpi_utils.c
parenteb37f8f1fbf62fce7e8997a24408b998f895d07b (diff)
QUIC: improve handling of SNI (#1105)
* QUIC: SNI should be always saved in flow->protos.stun_ssl.ssl.client_requested_server_name Close #1077 * QUIC: fix matching of custom categories * QUIC: add NDPI_TLS_MISSING_SNI support for older GQUIC versions * QUIC: fix serialization * QUIC: add DGA check for older GQUIC versions
Diffstat (limited to 'src/lib/ndpi_utils.c')
-rw-r--r--src/lib/ndpi_utils.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c
index 97b94ed68..8938a35f2 100644
--- a/src/lib/ndpi_utils.c
+++ b/src/lib/ndpi_utils.c
@@ -1213,8 +1213,23 @@ int ndpi_dpi2json(struct ndpi_detection_module_struct *ndpi_struct,
case NDPI_PROTOCOL_QUIC:
ndpi_serialize_start_of_block(serializer, "quic");
- if(flow->host_server_name[0] != '\0')
- ndpi_serialize_string_string(serializer, "hostname", (const char*)flow->host_server_name);
+ if(flow->protos.stun_ssl.ssl.client_requested_server_name[0] != '\0')
+ ndpi_serialize_string_string(serializer, "client_requested_server_name",
+ flow->protos.stun_ssl.ssl.client_requested_server_name);
+ if(flow->http.user_agent)
+ ndpi_serialize_string_string(serializer, "user_agent", flow->http.user_agent);
+ if(flow->protos.stun_ssl.ssl.ssl_version) {
+ u_int8_t unknown_tls_version;
+ char *version = ndpi_ssl_version2str(flow, flow->protos.stun_ssl.ssl.ssl_version, &unknown_tls_version);
+
+ if(!unknown_tls_version)
+ ndpi_serialize_string_string(serializer, "version", version);
+ if(flow->protos.stun_ssl.ssl.alpn)
+ ndpi_serialize_string_string(serializer, "alpn", flow->protos.stun_ssl.ssl.alpn);
+ ndpi_serialize_string_string(serializer, "ja3", flow->protos.stun_ssl.ssl.ja3_client);
+ if(flow->protos.stun_ssl.ssl.tls_supported_versions)
+ ndpi_serialize_string_string(serializer, "tls_supported_versions", flow->protos.stun_ssl.ssl.tls_supported_versions);
+ }
ndpi_serialize_end_of_block(serializer);
break;