TSG-8455 基于Nginx-QUIC和OpenSSL重构QUIC解析层
This commit is contained in:
@@ -426,7 +426,7 @@ int parse_tls_client_hello(struct quic_client_hello **client_hello, const char *
|
||||
int parse_result=PARSE_RESULT_VERSION;
|
||||
unsigned short one_ext_type=0, one_ext_len=0, extension_total_len=0;
|
||||
|
||||
if(payload_len-payload_offset<=sizeof(struct quic_client_hello_msg_hdr))
|
||||
if(payload_len-payload_offset<=(int)sizeof(struct quic_client_hello_msg_hdr))
|
||||
{
|
||||
return PARSE_RESULT_VERSION;
|
||||
}
|
||||
@@ -756,8 +756,6 @@ enum QUIC_VERSION is_quic_protocol(const char *payload, int payload_len, int *pa
|
||||
unsigned char parse_quic_all_version(struct quic_info *quic_info, const char *payload, int payload_len, int thread_seq)
|
||||
{
|
||||
int ret=0, payload_offset=0;
|
||||
unsigned char decrypt_payload[2048]={0};
|
||||
unsigned int decrypt_payload_len=sizeof(decrypt_payload);
|
||||
enum QUIC_VERSION quic_version=QUIC_VERSION_UNKNOWN;
|
||||
|
||||
if(payload==NULL || payload_len<=0)
|
||||
@@ -786,16 +784,20 @@ unsigned char parse_quic_all_version(struct quic_info *quic_info, const char *pa
|
||||
&& g_quic_param.decrypted_switch>0
|
||||
)
|
||||
{
|
||||
ret=quic_deprotection(payload, payload_len, decrypt_payload, &decrypt_payload_len);
|
||||
if(ret!=1 || decrypt_payload_len<=0)
|
||||
quic_dpt_t *dpt = quic_deprotection_new();
|
||||
if (quic_deprotection(dpt, (const u_char *)payload, payload_len) != 0)
|
||||
{
|
||||
quic_deprotection_free(dpt);
|
||||
return PARSE_RESULT_VERSION;
|
||||
}
|
||||
|
||||
if(g_quic_param.decrypted_switch==2)
|
||||
{
|
||||
return parse_quic_decrypted_payload(quic_info, (const char *)decrypt_payload, decrypt_payload_len, thread_seq);
|
||||
ret = parse_quic_decrypted_payload(quic_info, (const char *)dpt->payload.data, dpt->payload.len, thread_seq);
|
||||
quic_deprotection_free(dpt);
|
||||
return ret;
|
||||
}
|
||||
quic_deprotection_free(dpt);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user