summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2021-09-13 15:05:07 +0800
committerliuxueli <[email protected]>2021-09-13 15:05:07 +0800
commit6bf86b18243eae01bf92fea01e29443f58e132eb (patch)
tree507f4ce7de822426e13d76399f876546ec282e0a
parent72e835353cf83ac5de0db70401aeceb954874a8d (diff)
TSG-7747: 调整SNI/UA的默认索引值
-rw-r--r--src/gquic_process.cpp24
-rw-r--r--test/pcap/gquic/43/2-gquic-043-without-sni-192.168.50.26.55209-34.102.215.99.443.pcapbin0 -> 4158 bytes
-rw-r--r--test/pcap/gquic/43/3-gquic-043-without-sni-192.168.50.26.60851-34.102.215.99.443.pcapbin0 -> 12071 bytes
-rw-r--r--test/pcap/gquic/43/quic_result.json14
4 files changed, 33 insertions, 5 deletions
diff --git a/src/gquic_process.cpp b/src/gquic_process.cpp
index 31159b9..630c467 100644
--- a/src/gquic_process.cpp
+++ b/src/gquic_process.cpp
@@ -691,6 +691,9 @@ int parse_extension_tag(struct streaminfo *pstream, struct _quic_stream **quic_s
stream->ext_tags=(quic_tlv_t *)dictator_malloc(pstream->threadnum, tag_num*sizeof(quic_tlv_t));
memset(stream->ext_tags, 0, tag_num*sizeof(quic_tlv_t));
*quic_stream=stream;
+ stream->sni_idx=0xFF;
+ stream->ver_idx=0xFF;
+ stream->ua_idx=0xFF;
}
else
{
@@ -700,6 +703,9 @@ int parse_extension_tag(struct streaminfo *pstream, struct _quic_stream **quic_s
*quic_stream=stream;
stream->ext_tag_num=0;
stream->count++;
+ stream->sni_idx=0xFF;
+ stream->ver_idx=0xFF;
+ stream->ua_idx=0xFF;
}
while(tag_num>tag_used_num)
@@ -1166,6 +1172,9 @@ int parse_encrypt_client_hello(struct streaminfo *pstream, struct _quic_stream *
quic_stream->ext_tags=(quic_tlv_t *)dictator_malloc(pstream->threadnum, sizeof(quic_tlv_t)*3);
memset(quic_stream->ext_tags, 0, sizeof(quic_tlv_t)*3);
+ quic_stream->sni_idx=0xFF;
+ quic_stream->ua_idx=0xFF;
+ quic_stream->ver_idx=0xFF;
while(extension_total_len>used_len)
{
@@ -1364,10 +1373,17 @@ int quic_protocol_identify(struct streaminfo *a_stream, void *a_packet, char *ou
{
if(_context->quic_info.client_hello!=NULL)
{
- sni=(char *)(_context->quic_info.client_hello->ext_tags[_context->quic_info.client_hello->sni_idx].value);
- sni_len=_context->quic_info.client_hello->ext_tags[_context->quic_info.client_hello->sni_idx].length;
- len= sni_len>(out_sni_len-1) ? (out_sni_len-1) : sni_len;
- memcpy(out_sni, sni, len);
+ if(_context->quic_info.client_hello->sni_idx!=0xFF)
+ {
+ sni=(char *)(_context->quic_info.client_hello->ext_tags[_context->quic_info.client_hello->sni_idx].value);
+ sni_len=_context->quic_info.client_hello->ext_tags[_context->quic_info.client_hello->sni_idx].length;
+ len= sni_len>(out_sni_len-1) ? (out_sni_len-1) : sni_len;
+ memcpy(out_sni, sni, len);
+ }
+ else
+ {
+ len=0;
+ }
}
else
{
diff --git a/test/pcap/gquic/43/2-gquic-043-without-sni-192.168.50.26.55209-34.102.215.99.443.pcap b/test/pcap/gquic/43/2-gquic-043-without-sni-192.168.50.26.55209-34.102.215.99.443.pcap
new file mode 100644
index 0000000..ae75b00
--- /dev/null
+++ b/test/pcap/gquic/43/2-gquic-043-without-sni-192.168.50.26.55209-34.102.215.99.443.pcap
Binary files differ
diff --git a/test/pcap/gquic/43/3-gquic-043-without-sni-192.168.50.26.60851-34.102.215.99.443.pcap b/test/pcap/gquic/43/3-gquic-043-without-sni-192.168.50.26.60851-34.102.215.99.443.pcap
new file mode 100644
index 0000000..3bad2e1
--- /dev/null
+++ b/test/pcap/gquic/43/3-gquic-043-without-sni-192.168.50.26.60851-34.102.215.99.443.pcap
Binary files differ
diff --git a/test/pcap/gquic/43/quic_result.json b/test/pcap/gquic/43/quic_result.json
index e50c842..278622f 100644
--- a/test/pcap/gquic/43/quic_result.json
+++ b/test/pcap/gquic/43/quic_result.json
@@ -1,6 +1,18 @@
[{
+ "Tuple4": "192.168.50.26.55209>34.102.215.99.443",
+ "VERSION": "Google QUIC 43",
+ "name": "QUIC_RESULT_1"
+ }, {
+ "Tuple4": "192.168.50.26.60851>34.102.215.99.443",
+ "VERSION": "Google QUIC 43",
+ "name": "QUIC_RESULT_2"
+ }, {
"Tuple4": "112.43.145.231.18699>112.46.25.216.443",
"VERSION": "Google QUIC 43",
"SNI": "client.weixin.qq.com",
- "name": "QUIC_RESULT_1"
+ "name": "QUIC_RESULT_3"
+ }, {
+ "Tuple4": "192.168.50.26.63533>34.102.215.99.443",
+ "VERSION": "Google QUIC 43",
+ "name": "QUIC_RESULT_4"
}]