summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2020-06-01 17:44:32 +0800
committerliuxueli <[email protected]>2020-06-01 17:44:32 +0800
commit459d37cb7612441092e2ac57d4abb3e679d7d264 (patch)
treee139a735ff2aafa323269156efc8e5adb65de982
parentfe9a4ef0848ccf78dfbcfdadaef41970be0882b8 (diff)
添加是否调用业务层的开关
-rw-r--r--src/gquic.h1
-rw-r--r--src/gquic_process.c8
-rw-r--r--src/quic_analysis.c1
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)