summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2020-11-12 15:42:28 +0800
committerfengweihao <[email protected]>2020-11-12 15:42:28 +0800
commit9962458ad6e35a735ae94615f8febe8ab2b5dfeb (patch)
tree85b5c5112770dd0ee5cd05d843244752107d5bd1
parent9f2d64e865095ac064d5eb0dd5118cbe9132e23f (diff)
支持zlog配置重载
-rw-r--r--common/syslogd/include/logging.h3
-rw-r--r--common/syslogd/src/logging.cpp7
-rw-r--r--program/include/cert_conf.h2
-rw-r--r--program/include/cert_session.h2
-rw-r--r--program/src/cert_conf.cpp2
-rw-r--r--program/src/cert_session.cpp9
-rw-r--r--program/src/cert_store.cpp36
7 files changed, 46 insertions, 15 deletions
diff --git a/common/syslogd/include/logging.h b/common/syslogd/include/logging.h
index 19f1dae..1eba367 100644
--- a/common/syslogd/include/logging.h
+++ b/common/syslogd/include/logging.h
@@ -46,6 +46,7 @@ extern void mesa_logging_print(int log_level, const char *module, const char *ms
#define mesa_runtime_log(level, module, ...) mesa_log(logging_sc_lid.debug_switch, level, module, __VA_ARGS__)
-void cert_syslog_init(const char *config, const char * version);
+void cert_store_syslog_init(const char *config, const char * version);
+void cert_store_log_reconstruction();
#endif
diff --git a/common/syslogd/src/logging.cpp b/common/syslogd/src/logging.cpp
index 19c5a92..67659f6 100644
--- a/common/syslogd/src/logging.cpp
+++ b/common/syslogd/src/logging.cpp
@@ -31,7 +31,12 @@ void mesa_logging_print(int log_level, const char *module, const char *msg)
return;
}
-void cert_syslog_init(const char *config, const char * version)
+void cert_store_log_reconstruction()
+{
+ MESA_handle_runtime_log_reconstruction(NULL);
+}
+
+void cert_store_syslog_init(const char *config, const char * version)
{
struct breakpad_instance *breakpad;
diff --git a/program/include/cert_conf.h b/program/include/cert_conf.h
index 0dda0d4..160af03 100644
--- a/program/include/cert_conf.h
+++ b/program/include/cert_conf.h
@@ -89,6 +89,6 @@ struct config_bucket_t{
extern struct config_bucket_t *cfg_instanec();
-void cert_init_config(const char *config);
+void cert_store_init_config(const char *config);
#endif
diff --git a/program/include/cert_session.h b/program/include/cert_session.h
index 4f1e459..fae1ac0 100644
--- a/program/include/cert_session.h
+++ b/program/include/cert_session.h
@@ -103,7 +103,7 @@ typedef struct {
} x509_forge_thread;
-int cert_session_init();
+int cert_store_session_init();
void sigproc(int __attribute__((__unused__))sig);
diff --git a/program/src/cert_conf.cpp b/program/src/cert_conf.cpp
index 967265a..c4816ff 100644
--- a/program/src/cert_conf.cpp
+++ b/program/src/cert_conf.cpp
@@ -176,7 +176,7 @@ finish:
return xret;
}
-void cert_init_config(const char *config)
+void cert_store_init_config(const char *config)
{
load_system_config(config);
diff --git a/program/src/cert_session.cpp b/program/src/cert_session.cpp
index 4853cdd..2be2249 100644
--- a/program/src/cert_session.cpp
+++ b/program/src/cert_session.cpp
@@ -2116,11 +2116,12 @@ void sigproc(int __attribute__((__unused__))sig)
struct config_bucket_t *rte = cfg_instanec();
- for (tid = 0; tid < rte->thread_nu; tid++) {
+ for (tid = 0; tid < rte->thread_nu; tid++)
+ {
thread = threads + tid;
- if (thread->sync){
+ if (thread->sync)
+ {
redisAsyncDisconnect(thread->cl_ctx);
- free(thread->cl_ctx);
redisFree(thread->sync);
}
event_base_free(thread->base);
@@ -2327,7 +2328,7 @@ int maat_feather_init()
return 0;
}
-int cert_session_init()
+int cert_store_session_init()
{
mesa_fiel_stat_init();
diff --git a/program/src/cert_store.cpp b/program/src/cert_store.cpp
index efc55a8..3df16f7 100644
--- a/program/src/cert_store.cpp
+++ b/program/src/cert_store.cpp
@@ -40,7 +40,7 @@ enum syslog_display_format{
};
static
-void cert_preview ()
+void cert_store_preview ()
{
struct config_bucket_t *rte = cfg_instanec();
@@ -69,6 +69,27 @@ void cert_preview ()
printf("\r\n");
}
+static int signals[] = {SIGHUP, SIGPIPE, SIGUSR1,SIGINT};
+
+void __signal_handler_cb(int sig)
+{
+ switch (sig)
+ {
+ case SIGHUP:
+ mesa_runtime_log(RLOG_LV_INFO, MODULE_NAME, "Recv signal sighup, reload log config!");
+ cert_store_log_reconstruction();
+ break;
+ case SIGPIPE:
+ break;
+ case SIGUSR1:
+ case SIGINT:
+ sigproc(SIGINT);
+ break;
+ default:
+ break;
+ }
+}
+
int main(int argc, char **argv)
{
int opt = 0;
@@ -83,17 +104,20 @@ int main(int argc, char **argv)
break;
}
}
- cert_syslog_init(CERT_BASIC_CFG, version());
+ cert_store_syslog_init(CERT_BASIC_CFG, version());
- cert_init_config(CERT_BASIC_CFG);
+ cert_store_init_config(CERT_BASIC_CFG);
- cert_preview();
+ cert_store_preview();
mesa_runtime_log(RLOG_LV_INFO, MODULE_NAME, "Cert server init success");
- cert_session_init();
+ for (size_t i = 0; i < (sizeof(signals) / sizeof(int)); i++)
+ {
+ signal(signals[i], __signal_handler_cb);
+ }
- signal(SIGINT, sigproc);
+ cert_store_session_init();
return 0;
}