summaryrefslogtreecommitdiff
path: root/src/config/config_parse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/config_parse.cpp')
-rw-r--r--src/config/config_parse.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/src/config/config_parse.cpp b/src/config/config_parse.cpp
index e5459f4..585691c 100644
--- a/src/config/config_parse.cpp
+++ b/src/config/config_parse.cpp
@@ -1,3 +1,5 @@
+#include "breakpad.h"
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -7,7 +9,6 @@ extern "C" {
#include "support/tomlc99_wrap.h"
#include "field_stat2.h"
-
/* ��ֻ̬��ȫ�ֱ������Է��ڴ����, ������sapp_global_val�� */
static const char *default_config_file = "./etc/sapp.toml";
@@ -221,8 +222,13 @@ void sapp_cla_override_cfg_file(void)
{
char *cmd_args;
sapp_config_t *pconfig = &sapp_global_val->config;
+
+ if (sapp_get_cla_raw("coredump", &cmd_args) >= 0){
+ breakpad_segv_generate();
+ }
- if(sapp_get_cla_raw("dumpfile", &cmd_args) >= 0){ /* dumpfileģʽ�Զ�����interface���� */
+ if (sapp_get_cla_raw("dumpfile", &cmd_args) >= 0)
+ { /* dumpfileģʽ�Զ�����interface���� */
strcpy(pconfig->packet_io.depolyment_mode_str, "dumpfile");
pconfig->packet_io.depolyment_mode_bin = DEPOLYMENT_MODE_MIRROR;
sapp_global_val->individual_fixed.depolyment_mode_private = NET_CONN_PARALLEL;
@@ -230,13 +236,13 @@ void sapp_cla_override_cfg_file(void)
pconfig->packet_io.internal.interface.type_bin = CAP_MODEL_PCAP_DUMPFILE;
}
- if(sapp_get_cla_raw("dumpfile-file", &cmd_args) >= 0){
+ if (sapp_get_cla_raw("dumpfile-file", &cmd_args) >= 0)
+ {
strncpy(sapp_global_val->config.packet_io.pcap_dumpfile_name, cmd_args, NAME_MAX);
}
-
- return;
-}
+ return;
+ }
void sapp_generate_sample_config(void)
{
@@ -701,6 +707,8 @@ int sapp_parse_config(void)
tomlc99_wrap_load_int_def(default_config_file, (char *)"PROTOCOL_FEATURE", (char *)"treat_vlan_as_mac_in_mac", (int *)&pconfig->protocol_feature.treat_vlan_as_mac_in_mac_enabled, 0);
/******************************* TOOLS **********************************/
+ tomlc99_wrap_load_int_def(default_config_file, (char *)"tools.signal_handler", (char *)"signal", (int *)&pconfig->tools.signal_handler.signal, 0);
+
tomlc99_wrap_load_int_def(default_config_file, (char *)"tools.pkt_dump", (char *)"enabled", (int *)&pconfig->tools.pkt_dump.enabled, 0);
tomlc99_wrap_load_string_def(default_config_file, (char *)"tools.pkt_dump", (char *)"mode", pconfig->tools.pkt_dump.mode_str, NAME_MAX, "udp_socket");
tomlc99_wrap_load_string_def(default_config_file, (char *)"tools.pkt_dump", (char *)"BSD_packet_filter", str_tmp, ARG_MAX, "");
@@ -758,6 +766,21 @@ int sapp_parse_config(void)
return 0;
}
+/* init breakpad_mini */
+void sapp_init_breakpad_mini(void)
+
+{
+ struct breakpad_instance * g_breakpad = breakpad_init(default_config_file, "breakpad", sapp_global_val->individual_fixed.log_handle);
+ if(g_breakpad == NULL){exit(-1);}
+ sapp_global_val->individual_fixed.breakpad = g_breakpad;
+ return;
+}
+
+void sapp_segv_generate()
+{
+ breakpad_segv_generate();
+}
+
#ifdef __cplusplus
}
#endif