diff options
| author | 杨威 <[email protected]> | 2022-03-02 23:26:43 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2022-03-03 09:57:19 +0800 |
| commit | a2d0f862520c059902f24cd5ab517072b2181ae8 (patch) | |
| tree | 22a49a64dd33711dbde691f04f11d2228b6f256b | |
| parent | e524f6d68d19940d9b56af85d13afb1d13bb00af (diff) | |
✨ feat(config->packet_io): 增加packet_io.destroy_all_plug_enabled开关v4.2.78
默认关闭
| -rw-r--r-- | bin/etc/sapp.toml | 1 | ||||
| -rw-r--r-- | include/private/sapp_global_val.h | 3 | ||||
| -rw-r--r-- | src/config/config_parse.cpp | 4 | ||||
| -rw-r--r-- | src/packet_io/packet_io.c | 5 |
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(); |
