diff options
| author | yangwei <[email protected]> | 2023-08-24 01:36:15 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2023-08-24 01:36:15 +0800 |
| commit | 3273eec2b168d22126e04ce90f3e9a6c7e49b746 (patch) | |
| tree | 443d0a7f50fabb5fbd33160d134b77881a416f9c /src/packet_io/sendpacket.c | |
| parent | f50d3a28758b1cf913d35a977838369ee845be93 (diff) | |
🦄 refactor(duplicate_pkt): 简化重复包识别函数封装,v4/v6和TCP/UDP使用同一接口
Diffstat (limited to 'src/packet_io/sendpacket.c')
| -rw-r--r-- | src/packet_io/sendpacket.c | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/src/packet_io/sendpacket.c b/src/packet_io/sendpacket.c index e6f0612..e8a1ffd 100644 --- a/src/packet_io/sendpacket.c +++ b/src/packet_io/sendpacket.c @@ -2082,31 +2082,8 @@ static int build_net_layer_l2tp(const struct streaminfo *top_stream, struct stre /* �˺����ڲ��������ж��Ƿ���Ҫ����bloom filter, �ں����ⲿ�Ѿ��ж�. */ -static void sendpkt_dup_pkt_mark(const struct streaminfo *top_stream, unsigned char addrtype, const char *this_iphdr, const char *this_transport_hdr) -{ - if(STREAM_TYPE_TCP == top_stream->type){ - sapp_dup_pkt_mark_tcp(top_stream->threadnum, addrtype, this_iphdr, (const struct mesa_tcp_hdr *)(this_transport_hdr)); - }else{ - sapp_dup_pkt_mark_udp(top_stream->threadnum, addrtype, this_iphdr, (const struct mesa_udp_hdr *)(this_transport_hdr)); - } - return; -} -void sendpkt_dup_pkt_mark_stream(const struct streaminfo *top_stream, const char *ip_hdr) -{ - const struct mesa_ip4_hdr *ip4hdr; - const char *transport_layer_hdr; - - if(ADDR_TYPE_IPV4 == top_stream->addr.addrtype){ - ip4hdr = (struct mesa_ip4_hdr *)ip_hdr; - transport_layer_hdr = ip_hdr + ip4hdr->ip_hl * 4; - sendpkt_dup_pkt_mark(top_stream, ADDR_TYPE_IPV4, ip_hdr, transport_layer_hdr); - }else{ - transport_layer_hdr = ip_hdr + sizeof(struct mesa_ip6_hdr); - sendpkt_dup_pkt_mark(top_stream, ADDR_TYPE_IPV6, ip_hdr, transport_layer_hdr); - } -} extern int sapp_is_overlay_layer(const struct streaminfo_private *stream_pr, const raw_pkt_t *rawpkt); /* @@ -2174,7 +2151,7 @@ static int build_net_layer_pkt(const struct streaminfo *top_stream, const struct */ if((sapp_global_val->config.packet_io.dup_pkt_para.dup_pkt_distinguish_all_inject != 0) && (sapp_is_overlay_layer(stream_pr, raw_pkt) == 0)){ - sendpkt_dup_pkt_mark(top_stream, ADDR_TYPE_IPV4, (char *)buf, (const char *)buf+sizeof(struct mesa_ip4_hdr)); + sapp_dup_pkt_mark_l4((struct streaminfo *)top_stream, (const void *)buf, (const char *)buf+sizeof(struct mesa_ip4_hdr)); } } break; @@ -2204,7 +2181,7 @@ static int build_net_layer_pkt(const struct streaminfo *top_stream, const struct /* �ظ�����ʶ��, �ӵ���������Ϊ���������, ���ܻ��ж��, �Ҳ����پ���jump_layer��ת���ڲ�udp/tcp���� */ if(sapp_global_val->config.packet_io.dup_pkt_para.dup_pkt_distinguish_all_inject != 0){ - sendpkt_dup_pkt_mark(top_stream, ADDR_TYPE_IPV6, (char *)buf, (const char*)buf+sizeof(struct mesa_ip6_hdr)); + sapp_dup_pkt_mark_l4((struct streaminfo *)top_stream, (const void *)buf, (const char *)buf+sizeof(struct mesa_ip6_hdr)); } break; @@ -2971,7 +2948,7 @@ int __sapp_inject_pkt(struct streaminfo *raw_stream, enum sapp_inject_opt sio, һ�㲻�����ߵ�build_pkt�ĺ�����, �˴���Ҫ����ip��������bloom filter */ if (sapp_global_val->config.packet_io.dup_pkt_para.dup_pkt_distinguish_all_inject != 0) { - sendpkt_dup_pkt_mark_stream(raw_stream, (char *)payload); + sendpkt_dup_pkt_mark_stream(raw_stream, (const char *)payload); } } else |
