修复CLOSE状态未调用业务层的BUG
This commit is contained in:
@@ -67,6 +67,7 @@ int quic_getLinkState(struct _quic_context *_context)
|
|||||||
if(0==_context->link_state)
|
if(0==_context->link_state)
|
||||||
{
|
{
|
||||||
state=SESSION_STATE_PENDING|SESSION_STATE_DATA;
|
state=SESSION_STATE_PENDING|SESSION_STATE_DATA;
|
||||||
|
_context->link_state=1;
|
||||||
}
|
}
|
||||||
else
|
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);
|
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(is_gquic!=QUIC_VERSION_UNKNOWN)
|
||||||
{
|
{
|
||||||
if(_context->cb_version==0 && _context->call_business)
|
if(_context->cb_version==0)
|
||||||
{
|
{
|
||||||
_context->cb_version=1;
|
_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);
|
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);
|
||||||
|
|||||||
@@ -296,5 +296,7 @@ struct _gquic_ack_frame_header
|
|||||||
unsigned int tag;
|
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
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -264,6 +264,7 @@ extern "C" char QUIC_ENTRY(struct streaminfo *pstream, void**pme, int thread_seq
|
|||||||
break;
|
break;
|
||||||
case OP_STATE_CLOSE:
|
case OP_STATE_CLOSE:
|
||||||
ret=quic_process(pstream, _context, thread_seq, a_packet);
|
ret=quic_process(pstream, _context, thread_seq, a_packet);
|
||||||
|
quic_callPlugins(pstream, _context, NULL, 0, QUIC_INTEREST_KEY_MASK, a_packet);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user