修复CLOSE状态未调用业务层的BUG

This commit is contained in:
liuxueli
2020-11-22 16:55:49 +06:00
parent 409501cd5b
commit 3ec27f95f1
3 changed files with 10 additions and 1 deletions

View File

@@ -67,6 +67,7 @@ int quic_getLinkState(struct _quic_context *_context)
if(0==_context->link_state)
{
state=SESSION_STATE_PENDING|SESSION_STATE_DATA;
_context->link_state=1;
}
else
{
@@ -896,9 +897,14 @@ 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(!_context->call_business)
{
return APP_STATE_GIVEME;
}
if(is_gquic!=QUIC_VERSION_UNKNOWN)
{
if(_context->cb_version==0 && _context->call_business)
if(_context->cb_version==0)
{
_context->cb_version=1;
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);

View File

@@ -296,5 +296,7 @@ struct _gquic_ack_frame_header
unsigned int tag;
};
char quic_callPlugins(struct streaminfo *pstream, struct _quic_context *_context, void *buff, int buff_len, enum quic_interested_region region_mask, void *a_packet);
#endif

View File

@@ -264,6 +264,7 @@ extern "C" char QUIC_ENTRY(struct streaminfo *pstream, void**pme, int thread_seq
break;
case OP_STATE_CLOSE:
ret=quic_process(pstream, _context, thread_seq, a_packet);
quic_callPlugins(pstream, _context, NULL, 0, QUIC_INTEREST_KEY_MASK, a_packet);
break;
default:
break;