summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2024-09-14 17:51:10 +0800
committeryangwei <[email protected]>2024-09-14 17:51:10 +0800
commit3d484c89b13fca0ea53da3be24e70310b39d8b75 (patch)
tree7ea60cac3685cba29fb8c96fa6044f7192415481
parent9cf9019635700d744285fd26654b593e4baddf0c (diff)
✨ feat(lrustream): 包处理流程不再检查超时,仅在polling执行Feature-timeout-on-polling-only
-rw-r--r--include/private/stream_manage.h2
-rw-r--r--src/dealpkt/deal_tcp.c24
-rw-r--r--src/dealpkt/deal_udp.c10
-rw-r--r--src/dealpkt/stream_manage.c6
4 files changed, 10 insertions, 32 deletions
diff --git a/include/private/stream_manage.h b/include/private/stream_manage.h
index d6bcb95..87d4f21 100644
--- a/include/private/stream_manage.h
+++ b/include/private/stream_manage.h
@@ -152,7 +152,7 @@ struct streaminfo *findstream(struct streaminfo *ptmp);
void streamleavlist(struct streamindex *pindex,struct stream_list *plist);
void streamaddlist(struct streamindex *pindex,struct stream_list *plist);
struct streamindex *findstreamindex(struct streamindex *pindex, const raw_pkt_t *raw_pkt);
-int lrustream(struct streamindex *pindex);
+void lrustream(struct streamindex *pindex);
void hash_add_stream(struct streamindex *pindex);
void hash_del_stream(struct streamindex *pindex);
diff --git a/src/dealpkt/deal_tcp.c b/src/dealpkt/deal_tcp.c
index 30b0d87..297198c 100644
--- a/src/dealpkt/deal_tcp.c
+++ b/src/dealpkt/deal_tcp.c
@@ -2781,10 +2781,8 @@ static int deal_tcp_stream(struct streamindex *pindex, const void *this_iphdr, s
printaddr(&pstream->addr, pstream->threadnum), pstream->curdir);
pdetail->lastmtime = g_CurrentTime;
pstream_pr->stream_lastupdate_timestamp_ms = g_CurrentTime_ms;
- if(1 == lrustream(pindex_tcp))
- {
- tcp_reset_stream(pindex_tcp, this_iphdr,this_tcphdr, tcplen,raw_pkt);
- }
+ lrustream(pindex_tcp);
+
if((this_tcphdr->th_flags & TH_RST) && tcplen == 0)
{
return PASS;
@@ -2891,21 +2889,7 @@ static int deal_tcp_stream(struct streamindex *pindex, const void *this_iphdr, s
pstream_pr->ip_ttl_s2c = pindex->stream.ip_ttl_c2s; /* Not a mistake, that's it! */
}
- if(1 == lrustream(pindex_tcp)){
- ret = tcp_reset_stream(pindex_tcp, this_iphdr,this_tcphdr, tcplen,raw_pkt);
- if(0 == ret){
- return PASS;
- }
- if(pstream_pr->under_ddos_bypass){
- return PASS;
- }
- ret = tcp_processallpkt(pstream, this_iphdr, this_tcphdr, tcplen, raw_pkt);
- if(DROP == ret){
- return DROP;
- }
-
- call_tcpall_after_reset = 1;
- }
+ lrustream(pindex_tcp);
pdetail->lastmtime=g_CurrentTime;
pstream_pr->stream_lastupdate_timestamp_ms=g_CurrentTime_ms;
@@ -2966,7 +2950,7 @@ static int deal_tcp_stream(struct streamindex *pindex, const void *this_iphdr, s
}
pdetail_pr =(struct tcpdetail_private*)(pstream->pdetail);
- if((pdetail_pr != NULL) && (0 == call_tcpall_after_reset) && pindex_tcp && (pstream->pktstate!=OP_STATE_CLOSE))
+ if((pdetail_pr != NULL) && pindex_tcp && (pstream->pktstate!=OP_STATE_CLOSE))
{
if(tcplen == 0)
{
diff --git a/src/dealpkt/deal_udp.c b/src/dealpkt/deal_udp.c
index dc4231c..9eac4bb 100644
--- a/src/dealpkt/deal_udp.c
+++ b/src/dealpkt/deal_udp.c
@@ -674,10 +674,7 @@ int dealipv4udppkt(struct streamindex *pindex, const struct mesa_ip4_hdr * this_
}
else
{
- if (lrustream(a_index) == 1)
- {
- udp_reset_stream(a_index);
- }
+ lrustream(a_index);
}
pstream_pr=&(a_index->stream);
@@ -949,10 +946,7 @@ int dealipv6udppkt(struct streamindex *pindex,const struct mesa_ip6_hdr *a_packe
}
else
{
- if(lrustream(a_index)==1)
- {
- udp_reset_stream(a_index);
- }
+ lrustream(a_index);
}
pstream_pr=&(a_index->stream);
diff --git a/src/dealpkt/stream_manage.c b/src/dealpkt/stream_manage.c
index e03eec5..ebb9f69 100644
--- a/src/dealpkt/stream_manage.c
+++ b/src/dealpkt/stream_manage.c
@@ -538,7 +538,7 @@ int del_stream_by_time(struct stream_list *plist, int tid, enum stream_type_t ty
return ret;
}
-int lrustream(struct streamindex *pindex)
+void lrustream(struct streamindex *pindex)
{
struct stream_list *plist = NULL;
struct streaminfo_private *pstream_pr = &(pindex->stream);
@@ -558,7 +558,7 @@ int lrustream(struct streamindex *pindex)
timeouts_add(plist->streamindex_timer, &pindex->timeout, tcp_opening_timeout * 1000 + g_CurrentTime_ms);
}
else if (pstream->stream_state == TCP_NOUSE_STATE && pstream->type == STREAM_TYPE_TCP &&
- (sapp_global_val->config.stream.tcp.fast_close_discard == 1))
+ (sapp_global_val->config.stream.tcp.fast_close_discard == 1))
{
if (pstream_pr->set_special_timeout == 0)
{
@@ -576,7 +576,7 @@ int lrustream(struct streamindex *pindex)
set_timeout = MAX_DEFALUT_TIMEOUT_S;
timeouts_add(plist->streamindex_timer, &pindex->timeout, set_timeout * 1000 + g_current_time_ms);
}
- return 0;
+ return;
}
static int cmpaddr_mpls(const struct layer_addr_mpls *addr_heap, const struct layer_addr_mpls *addr_stack)