From fd9b5fffe0b3776d1f4871cb7554f34fdecad2a2 Mon Sep 17 00:00:00 2001 From: liangxia Date: Wed, 28 Aug 2019 18:19:24 +0800 Subject: [PATCH] =?UTF-8?q?Add=20=20aaa-12=20log-sched=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0console=E9=85=8D=E7=BD=AE=E7=9A=84?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=EF=BC=88=E7=9B=AE=E5=89=8Dconsole?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=B7=A5=E4=BD=9C=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E6=9B=B4=E6=94=B9tty=E6=96=87=E4=BB=B6=E6=9D=83=E9=99=90?= =?UTF-8?q?=EF=BC=89=20RCA=EF=BC=9A=20SOL=EF=BC=9A=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=BA=EF=BC=9Aliangxia=20=E6=A3=80=E8=A7=86=E4=BA=BA?= =?UTF-8?q?=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Platform/user/ulog/log-sched/log_console.c | 73 ++++++++++++++++++++++ Platform/user/ulog/log-sched/log_console.h | 2 + Platform/user/ulog/log-sched/log_sched.c | 16 +++++ 3 files changed, 91 insertions(+) diff --git a/Platform/user/ulog/log-sched/log_console.c b/Platform/user/ulog/log-sched/log_console.c index 17046c467..cbe01535a 100755 --- a/Platform/user/ulog/log-sched/log_console.c +++ b/Platform/user/ulog/log-sched/log_console.c @@ -17,6 +17,10 @@ #define SERIAL_NO_DRIVER_KEY SERIAL_DRIVER_PREFIX":unknown" #define SERIAL_PREFIX "ttyS" +#ifndef CM_LOG_CONF_CONSOLE_FILE +#define CM_LOG_CONF_CONSOLE_FILE "/etc/rsyslog.d/log-console.conf" +#endif + static int write_console_content(FILE *fp, const u8 level, const char *filter_mod, void *arg) { int ret = -1; @@ -126,3 +130,72 @@ void rpc_conf_log_console(rpc_conn *conn, pointer input, int input_len, pointer */ } + +ret_code console_initial() +{ + ret_code ret = RET_ERR; + FILE *fp = NULL; + char *pos = NULL; + char *pos2 = NULL; + char ttyfile_str[128] = ""; + int str_len = 0; + + fp = fopen(CM_LOG_CONF_CONSOLE_FILE, "r"); + if (NULL == fp) { + return ret; + } + + if (fseek(fp, 0, SEEK_SET) == -1) + { + ULOG_ERR(g_log, "Seeknig config to begin is faiure:%s", strerror(errno)); + + fclose(fp); + return ret; + } + + ssize_t n; + char *line = NULL; + while ((getline(&line, &n, fp)) != -1) + { + pos = strstr(line, "/"); + if (pos != NULL) + { + if ((pos2 = strstr(pos, " ")) != NULL) + { + str_len = strlen(pos) - strlen(pos2); + } + else + { + str_len = strlen(pos); + } + + memset(ttyfile_str, 0, sizeof(ttyfile_str)); + strncpy(ttyfile_str, pos, str_len); + + /* 滤除掉段尾的回车换行 */ + if ('\n' == ttyfile_str[strlen(ttyfile_str)-1]) + { + ttyfile_str[strlen(ttyfile_str)-1] = '\0'; + } + + + if(modify_authorizing(ttyfile_str) == RET_OK) + { + ULOG_DEBUG(g_log, "Modify authorizing %s successed.", ttyfile_str); + } + else + { + ULOG_DEBUG(g_log, "Modify authorizing %s failed.", ttyfile_str); + } + } + } + + ret = RET_OK; + if (NULL != fp) + { + fclose(fp); + } + return ret; + +} + diff --git a/Platform/user/ulog/log-sched/log_console.h b/Platform/user/ulog/log-sched/log_console.h index 9296cb79f..9c73ffd70 100755 --- a/Platform/user/ulog/log-sched/log_console.h +++ b/Platform/user/ulog/log-sched/log_console.h @@ -6,5 +6,7 @@ #include "rpc_common.h" void rpc_conf_log_console(rpc_conn *conn, pointer input, int input_len, pointer data); +ret_code console_initial(); + #endif diff --git a/Platform/user/ulog/log-sched/log_sched.c b/Platform/user/ulog/log-sched/log_sched.c index 6c80c89e1..df4b06451 100755 --- a/Platform/user/ulog/log-sched/log_sched.c +++ b/Platform/user/ulog/log-sched/log_sched.c @@ -23,6 +23,17 @@ ulog_t *g_log = NULL; FILE *g_conf_fp; char g_conf_file[MAX_PATH_SZ]; +typedef ret_code (*initial_cb)(); +typedef struct _log_initial { + char type[20]; + initial_cb cb; +} log_initial_t; + +log_initial_t g_log_initial[] = { + {"console", console_initial} +}; + + void signal_exit() { log_sev_exit(); @@ -65,6 +76,11 @@ int main(int argc, char **argv) } } + /* 鍚勭被閰嶇疆鍒濆鍖 */ + for (int i = 0; i < (sizeof(g_log_initial) / sizeof(log_initial_t)); i++) { + g_log_initial[i].cb(); + } + rpc_server *server = rpc_server_create_ex(RPC_MODULE_SYSLOG_NAME); if (server == NULL) {