summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨威 <[email protected]>2022-03-02 23:26:43 +0800
committer杨威 <[email protected]>2022-03-03 09:57:19 +0800
commita2d0f862520c059902f24cd5ab517072b2181ae8 (patch)
tree22a49a64dd33711dbde691f04f11d2228b6f256b
parente524f6d68d19940d9b56af85d13afb1d13bb00af (diff)
✨ feat(config->packet_io): 增加packet_io.destroy_all_plug_enabled开关v4.2.78
默认关闭
-rw-r--r--bin/etc/sapp.toml1
-rw-r--r--include/private/sapp_global_val.h3
-rw-r--r--src/config/config_parse.cpp4
-rw-r--r--src/packet_io/packet_io.c5
4 files changed, 10 insertions, 3 deletions
diff --git a/bin/etc/sapp.toml b/bin/etc/sapp.toml
index cd641a1..6df09db 100644
--- a/bin/etc/sapp.toml
+++ b/bin/etc/sapp.toml
@@ -70,6 +70,7 @@
##extract_linkdir_from_mac_in_mirror_mode="ether[4]:0" ## for Xj example
extract_linkdir_from_mac_in_mirror_mode=""
+ destroy_all_plug_enabled = 1
### note, depolyment.mode options: [mirror, inline, transparent]
[packet_io.depolyment]
mode=mirror
diff --git a/include/private/sapp_global_val.h b/include/private/sapp_global_val.h
index 4f12e3b..8dd481d 100644
--- a/include/private/sapp_global_val.h
+++ b/include/private/sapp_global_val.h
@@ -287,7 +287,8 @@ typedef struct{
sapp_under_ddos_config_t under_ddos_config;
int not_exit_for_dumpfile_mode; /* �����������˳�����, �������Բ���, ���ѭ����ȡ����� */
- int infinite_loop_enabled;
+ short infinite_loop_enabled;
+ short destroy_all_plug_enabled;
}sapp_config_packet_io_t;
diff --git a/src/config/config_parse.cpp b/src/config/config_parse.cpp
index 7fa9071..145ffdf 100644
--- a/src/config/config_parse.cpp
+++ b/src/config/config_parse.cpp
@@ -1785,6 +1785,8 @@ int sapp_parse_config(void)
tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"dumpfile_sleep_time_before_exit", &pconfig->packet_io.dumpfile_sleep_time_before_exit, 1);
tomlc99_wrap_load_string_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"extract_linkdir_from_mac_in_mirror_mode", pconfig->packet_io.extract_linkdir_from_mac_sntax_raw_string, sizeof(pconfig->packet_io.extract_linkdir_from_mac_sntax_raw_string), "");
+ tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.feature", (char *)"destroy_all_plug_enabled", (int *)&pconfig->packet_io.destroy_all_plug_enabled, 1);
+
tomlc99_wrap_load_string_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.depolyment", (char *)"mode", pconfig->packet_io.depolyment_mode_str, NAME_MAX, "mirror");
tomlc99_wrap_load_string_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.internal.interface", (char *)"type", pconfig->packet_io.internal.interface.type_str, NAME_MAX, "pcap");
tomlc99_wrap_load_string_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.internal.interface", (char *)"name", pconfig->packet_io.internal.interface.name, NAME_MAX, "lo");
@@ -1793,7 +1795,7 @@ int sapp_parse_config(void)
tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.polling", (char *)"enabled", &pconfig->packet_io.polling_enabled, 1);
tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.polling", (char *)"polling_priority", &pconfig->packet_io.polling_priority, 100);
- tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.polling", (char *)"infinite_loop_enabled", &pconfig->packet_io.infinite_loop_enabled, 0);
+ tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"packet_io.polling", (char *)"infinite_loop_enabled", (int *)&pconfig->packet_io.infinite_loop_enabled, 0);
/** duplicate packet config **/
tomlc99_wrap_load_int_def(ABBR_CFG_FILE_MAIN_ENTRY, (char *)"dup_pkt.traffic.original", (char *)"original_ipv4_tcp_enabled", &pconfig->packet_io.dup_pkt_para.dup_pkt_distinguish_ipv4_tcp, 0);
diff --git a/src/packet_io/packet_io.c b/src/packet_io/packet_io.c
index 61a15bd..368e76f 100644
--- a/src/packet_io/packet_io.c
+++ b/src/packet_io/packet_io.c
@@ -1416,7 +1416,10 @@ void packet_io_exit(void)
global_sapp_timer_destroy();
gdev_keepalive_plug_destroy();
- plugctrl_destroy_all_plug();
+ if(sapp_global_val->config.packet_io.destroy_all_plug_enabled == 1)
+ {
+ plugctrl_destroy_all_plug();
+ }
sendpacket_destroy(g_packet_io_thread_num);
packet_io_lib_destroy();
packet_io_device_alias_destroy();