支持IQUIC
This commit is contained in:
@@ -14,6 +14,52 @@
|
||||
#include "gquic_process.h"
|
||||
#include "quic_analysis.h"
|
||||
|
||||
|
||||
int is_iquic(enum _QUIC_VERSION quic_version)
|
||||
{
|
||||
switch(quic_version)
|
||||
{
|
||||
case IQUIC_VERSION_I001:
|
||||
case IQUIC_VERSION_I002:
|
||||
case IQUIC_VERSION_I003:
|
||||
case IQUIC_VERSION_I004:
|
||||
case IQUIC_VERSION_I005:
|
||||
case IQUIC_VERSION_I006:
|
||||
case IQUIC_VERSION_I007:
|
||||
case IQUIC_VERSION_I008:
|
||||
case IQUIC_VERSION_I009:
|
||||
case IQUIC_VERSION_I010:
|
||||
case IQUIC_VERSION_I011:
|
||||
case IQUIC_VERSION_I012:
|
||||
case IQUIC_VERSION_I013:
|
||||
case IQUIC_VERSION_I014:
|
||||
case IQUIC_VERSION_I015:
|
||||
case IQUIC_VERSION_I016:
|
||||
case IQUIC_VERSION_I017:
|
||||
case IQUIC_VERSION_I018:
|
||||
case IQUIC_VERSION_I019:
|
||||
case IQUIC_VERSION_I020:
|
||||
case IQUIC_VERSION_I021:
|
||||
case IQUIC_VERSION_I022:
|
||||
case IQUIC_VERSION_I023:
|
||||
case IQUIC_VERSION_I024:
|
||||
case IQUIC_VERSION_I025:
|
||||
case IQUIC_VERSION_I026:
|
||||
case IQUIC_VERSION_I027:
|
||||
case IQUIC_VERSION_I028:
|
||||
case IQUIC_VERSION_I029:
|
||||
case IQUIC_VERSION_I030:
|
||||
case IQUIC_VERSION_I031:
|
||||
case IQUIC_VERSION_I032:
|
||||
return TRUE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int quic_getLinkState(struct _quic_context *_context)
|
||||
{
|
||||
UCHAR state = 0;
|
||||
@@ -405,7 +451,11 @@ enum _QUIC_VERSION is_quic_protocol(struct streaminfo *pstream, struct _quic_con
|
||||
|
||||
if(_context->quic_info.quic_hdr.quic_version!=QUIC_VERSION_UNKNOWN)
|
||||
{
|
||||
//
|
||||
if(is_iquic((enum _QUIC_VERSION)(_context->quic_info.quic_hdr.quic_version)))
|
||||
{
|
||||
return (enum _QUIC_VERSION)(_context->quic_info.quic_hdr.quic_version);
|
||||
}
|
||||
|
||||
quic_version=(enum _QUIC_VERSION)(_context->quic_info.quic_hdr.quic_version);
|
||||
}
|
||||
else
|
||||
@@ -426,36 +476,7 @@ enum _QUIC_VERSION is_quic_protocol(struct streaminfo *pstream, struct _quic_con
|
||||
case GQUIC_VERSION_Q049:
|
||||
case GQUIC_VERSION_Q050:
|
||||
case GQUIC_VERSION_Q099:
|
||||
case IQUIC_VERSION_I001:
|
||||
case IQUIC_VERSION_I002:
|
||||
case IQUIC_VERSION_I003:
|
||||
case IQUIC_VERSION_I004:
|
||||
case IQUIC_VERSION_I005:
|
||||
case IQUIC_VERSION_I006:
|
||||
case IQUIC_VERSION_I007:
|
||||
case IQUIC_VERSION_I008:
|
||||
case IQUIC_VERSION_I009:
|
||||
case IQUIC_VERSION_I010:
|
||||
case IQUIC_VERSION_I011:
|
||||
case IQUIC_VERSION_I012:
|
||||
case IQUIC_VERSION_I013:
|
||||
case IQUIC_VERSION_I014:
|
||||
case IQUIC_VERSION_I015:
|
||||
case IQUIC_VERSION_I016:
|
||||
case IQUIC_VERSION_I017:
|
||||
case IQUIC_VERSION_I018:
|
||||
case IQUIC_VERSION_I019:
|
||||
case IQUIC_VERSION_I020:
|
||||
case IQUIC_VERSION_I021:
|
||||
case IQUIC_VERSION_I032:
|
||||
case IQUIC_VERSION_I023:
|
||||
case IQUIC_VERSION_I024:
|
||||
case IQUIC_VERSION_I025:
|
||||
case IQUIC_VERSION_I026:
|
||||
case IQUIC_VERSION_I027:
|
||||
case IQUIC_VERSION_I028:
|
||||
case IQUIC_VERSION_I029:
|
||||
MESA_handle_runtime_log(g_quic_param.logger, RLOG_LV_DEBUG, "QUIC_UNSUPPORT", "version: Q%03u addr: %s",
|
||||
MESA_handle_runtime_log(g_quic_param.logger, RLOG_LV_DEBUG, "GQUIC", "version: Q%03u addr: %s",
|
||||
(((quic_version>>8)&0x0000000F)*10) + ((quic_version)&0x0000000F),
|
||||
printaddr(&pstream->addr, pstream->threadnum));
|
||||
|
||||
@@ -464,6 +485,16 @@ enum _QUIC_VERSION is_quic_protocol(struct streaminfo *pstream, struct _quic_con
|
||||
return quic_version;
|
||||
break;
|
||||
default:
|
||||
if(is_iquic(quic_version))
|
||||
{
|
||||
MESA_handle_runtime_log(g_quic_param.logger, RLOG_LV_DEBUG, "IQUIC", "version: I%03u addr: %s",
|
||||
(((quic_version>>16)&0x000000FF)*10) + (((quic_version>>8)&0x000000FF)*10) + ((quic_version)&0x000000FF),
|
||||
printaddr(&pstream->addr, pstream->threadnum));
|
||||
|
||||
_context->is_quic=TRUE;
|
||||
_context->quic_info.quic_hdr.quic_version=quic_version;
|
||||
return quic_version;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -886,6 +917,11 @@ int quic_process(struct streaminfo *pstream, struct _quic_context* _context, int
|
||||
ret=parse_gquic_Q046(pstream, _context, a_packet, (char *)udp_detail->pdata, udp_detail->datalen, &used_len);
|
||||
break;
|
||||
default:
|
||||
ret=quic_callPlugins(pstream, _context, (char *)udp_detail->pdata, udp_detail->datalen, QUIC_APPLICATION_DATA_MASK, a_packet);
|
||||
if(ret&APP_STATE_DROPME | ret&APP_STATE_DROPPKT)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user