完善GQUIC1-43版本解析功能

This commit is contained in:
liuxueli
2020-06-01 17:16:23 +08:00
parent d2ad9ab2c4
commit 3f09c62e1c
5 changed files with 292 additions and 219 deletions

View File

@@ -15,10 +15,13 @@
#define QUIC_COMM_CERT (1<<QUIC_COMM_CERT_MASK)
#define QUIC_CERT_CHAIN (1<<QUIC_CERT_CHAIN_MASK)
#define QUIC_APPLICATION_DATA (1<<QUIC_APPLICATION_DATA_MASK)
#define QUIC_VERSION (1<<QUIC_VERSION_MASK)
#define QUIC_USEING_VERSION (1<<QUIC_USEING_VERSION_MASK)
#define QUIC_NEGOTIATION_VERSION (1<<QUIC_NEGOTIATION_VERSION_MASK)
#define QUIC_REJECTION (1<<QUIC_REJECTION_MASK)
enum quic_interested_region {
enum quic_interested_region
{
QUIC_INTEREST_KEY_MASK = 0,
QUIC_CLIENT_HELLO_MASK,
QUIC_SERVER_HELLO_MASK,
@@ -26,7 +29,9 @@ enum quic_interested_region {
QUIC_COMM_CERT_MASK,
QUIC_CERT_CHAIN_MASK,
QUIC_APPLICATION_DATA_MASK,
QUIC_VERSION_MASK
QUIC_USEING_VERSION_MASK,
QUIC_NEGOTIATION_VERSION_MASK,
QUIC_REJECTION_MASK
};
typedef struct _quic_tlv
@@ -41,12 +46,17 @@ typedef struct _quic_tlv
struct _quic_public_header
{
unsigned char public_flags;
unsigned int quic_version;
unsigned int server_CID_len;
unsigned int client_CID_len;
unsigned char is_reset;
unsigned char is_sepcial_packet; // special Packets
unsigned char is_version_negotiation;
unsigned char server_CID_len;
unsigned char client_CID_len;
unsigned char negotiation_version_num;
unsigned int quic_version;
unsigned long long packet_number;
unsigned char server_CID[MAX_CONNECT_ID_LEN]; ////use first 8 bytes if GQUIC version 1~43
unsigned char client_CID[MAX_CONNECT_ID_LEN]; // no used if GQUIC version 1~43
unsigned char client_CID[MAX_CONNECT_ID_LEN]; // no used if GQUIC version 1~43
unsigned int *negotiation_version_list;
};
struct _gquic_frame_header
{
@@ -70,7 +80,7 @@ struct _quic_stream
struct _quic_info
{
struct _quic_stream *rej;
struct _quic_stream *rejection;
struct _quic_stream *client_hello;
struct _quic_stream *server_hello;
struct _gquic_frame_header frame_hdr;
@@ -79,5 +89,6 @@ struct _quic_info
//buff_len minimun 32bytes
int quic_version_int2string(unsigned int version, char *buff, int buff_len);
int quic_process(struct streaminfo *pstream, struct _quic_context* _context, int thread_seq, void* a_packet);
#endif /* SRC_GQUIC_H_ */