TSG-7747: 调整SNI/UA的默认索引值
This commit is contained in:
@@ -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));
|
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));
|
memset(stream->ext_tags, 0, tag_num*sizeof(quic_tlv_t));
|
||||||
*quic_stream=stream;
|
*quic_stream=stream;
|
||||||
|
stream->sni_idx=0xFF;
|
||||||
|
stream->ver_idx=0xFF;
|
||||||
|
stream->ua_idx=0xFF;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -700,6 +703,9 @@ int parse_extension_tag(struct streaminfo *pstream, struct _quic_stream **quic_s
|
|||||||
*quic_stream=stream;
|
*quic_stream=stream;
|
||||||
stream->ext_tag_num=0;
|
stream->ext_tag_num=0;
|
||||||
stream->count++;
|
stream->count++;
|
||||||
|
stream->sni_idx=0xFF;
|
||||||
|
stream->ver_idx=0xFF;
|
||||||
|
stream->ua_idx=0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
while(tag_num>tag_used_num)
|
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);
|
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);
|
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)
|
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)
|
if(_context->quic_info.client_hello!=NULL)
|
||||||
{
|
{
|
||||||
sni=(char *)(_context->quic_info.client_hello->ext_tags[_context->quic_info.client_hello->sni_idx].value);
|
if(_context->quic_info.client_hello->sni_idx!=0xFF)
|
||||||
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;
|
sni=(char *)(_context->quic_info.client_hello->ext_tags[_context->quic_info.client_hello->sni_idx].value);
|
||||||
memcpy(out_sni, sni, len);
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -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",
|
"Tuple4": "112.43.145.231.18699>112.46.25.216.443",
|
||||||
"VERSION": "Google QUIC 43",
|
"VERSION": "Google QUIC 43",
|
||||||
"SNI": "client.weixin.qq.com",
|
"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"
|
||||||
}]
|
}]
|
||||||
|
|||||||
Reference in New Issue
Block a user