From 459d37cb7612441092e2ac57d4abb3e679d7d264 Mon Sep 17 00:00:00 2001 From: liuxueli Date: Mon, 1 Jun 2020 17:44:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=98=AF=E5=90=A6=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E4=B8=9A=E5=8A=A1=E5=B1=82=E7=9A=84=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gquic.h | 1 + src/gquic_process.c | 8 ++++---- src/quic_analysis.c | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gquic.h b/src/gquic.h index 4583329..7afb3b3 100644 --- a/src/gquic.h +++ b/src/gquic.h @@ -175,6 +175,7 @@ struct _quic_context { int is_quic; int link_state; + int call_business; void *business_pme; struct _quic_info quic_info; }; diff --git a/src/gquic_process.c b/src/gquic_process.c index 106d2d3..13cd369 100644 --- a/src/gquic_process.c +++ b/src/gquic_process.c @@ -614,21 +614,21 @@ int gquic_frame_type_stream(struct streaminfo *pstream, struct _quic_context* _c { case CHLO: //MTAG_CHLO; ret=parse_extension_tag(pstream, &_context->quic_info.client_hello, a_packet, payload, payload_len, used_len, tag_num); - if(ret>=0) + if(ret>=0 && _context->call_business) { ret=quic_callPlugins(pstream, _context, (void *)(_context->quic_info.client_hello), sizeof(void *), QUIC_CLIENT_HELLO_MASK, a_packet); } break; case SHLO: //MTAG_SHLO; ret=parse_extension_tag(pstream, &_context->quic_info.server_hello, a_packet, payload, payload_len, used_len, tag_num); - if(ret>=0) + if(ret>=0 && _context->call_business) { ret=quic_callPlugins(pstream, _context, (void *)(_context->quic_info.server_hello), sizeof(void *), QUIC_SERVER_HELLO_MASK, a_packet); } break; case REJ: //MTAG_REJ; ret=parse_extension_tag(pstream, &_context->quic_info.rejection, a_packet, payload, payload_len, used_len, tag_num); - if(ret>=0) + if(ret>=0 && _context->call_business) { ret=quic_callPlugins(pstream, _context, (void *)(_context->quic_info.rejection), sizeof(void *), QUIC_REJECTION_MASK, a_packet); } @@ -834,7 +834,7 @@ int quic_process(struct streaminfo *pstream, struct _quic_context* _context, int is_gquic=is_quic_protocol(pstream, _context, (char *)udp_detail->pdata, udp_detail->datalen, &used_len); if(is_gquic!=QUIC_VERSION_UNKNOWN) { - if(_context->quic_info.quic_hdr.packet_number==1) + if(_context->quic_info.quic_hdr.packet_number==1 && _context->call_business) { ret=quic_callPlugins(pstream, _context, &(_context->quic_info.quic_hdr.quic_version), sizeof(_context->quic_info.quic_hdr.quic_version), QUIC_USEING_VERSION_MASK, a_packet); if(ret&APP_STATE_DROPME | ret&APP_STATE_DROPPKT) diff --git a/src/quic_analysis.c b/src/quic_analysis.c index 2988db8..907e945 100644 --- a/src/quic_analysis.c +++ b/src/quic_analysis.c @@ -255,6 +255,7 @@ extern "C" char QUIC_ENTRY(struct streaminfo *pstream, void**pme, int thread_seq { quic_init_stream(pme, thread_seq); _context=(struct _quic_context *)*pme; + _context->call_business=TRUE; } switch(pstream->opstate)