diff options
Diffstat (limited to 'dealpkt/deal_tcp.c')
| -rw-r--r-- | dealpkt/deal_tcp.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/dealpkt/deal_tcp.c b/dealpkt/deal_tcp.c index c4a8c8a..0b3f6f1 100644 --- a/dealpkt/deal_tcp.c +++ b/dealpkt/deal_tcp.c @@ -2447,6 +2447,7 @@ static int deal_tcp_stream(struct streamindex *pindex, const void *this_iphdr, s struct tcpdetail_private *pdetail_pr=NULL; int ret=PASS; int retAll=PASS; + int call_tcpall_after_reset = 0; /* 2019-10-18 lijia modify, ��ǰ����reset֮��,��֤�ȵ���tcpall,�ٵ���tcp */ struct streaminfo_private *pstream_pr = &pindex->stream; struct streaminfo *pstream = &pstream_pr->stream_public; int try_to_update_addr_info = 0; @@ -2609,6 +2610,13 @@ static int deal_tcp_stream(struct streamindex *pindex, const void *this_iphdr, s if(0 == ret){ return PASS; } + + ret = tcp_processallpkt(pstream, this_iphdr, this_tcphdr, tcplen, raw_pkt); + if(DROP == ret){ + return DROP; + } + + call_tcpall_after_reset = 1; } pdetail->lastmtime=g_CurrentTime; @@ -2656,7 +2664,7 @@ static int deal_tcp_stream(struct streamindex *pindex, const void *this_iphdr, s } //adjust by lqy 20150107 Ϊ�˷�ֹSYN�ؽ�����ʱSYN�ڵ�һ�������� - if(pindex_tcp && (pstream->pktstate!=OP_STATE_CLOSE)) + if((0 == call_tcpall_after_reset) && pindex_tcp && (pstream->pktstate!=OP_STATE_CLOSE)) { //ȫ���ӿ��õ�������ָ��ǰ����ԭʼ���� if(tcplen == 0) |
