[Bugfix][T800][task-view-513] use uci control syslog's size and rotate
number
Only Configure: No
Affected branch: unknown
Affected module: log
Is it affected on both ZXIC and MTK: only MTK
Self-test: yes
Doc Update: no
Change-Id: I7416dde5d9edfa25e2509ca8075a61867560ebf0
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
index 328a721..47e50a9 100755
--- a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
@@ -2,22 +2,82 @@
index 266657f..7db5c16 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
-@@ -74,6 +74,8 @@
+@@ -165,6 +165,7 @@
+
+ #include <sys/un.h>
+ #include <sys/uio.h>
++#include <dlfcn.h>
+
+ #if ENABLE_FEATURE_REMOTE_LOG
+ #include <netinet/in.h>
+@@ -175,6 +176,11 @@
#include <sys/sem.h>
#include <sys/shm.h>
#endif
+#define ENABLE_FEATURE_SYSLOGD_CFG 1
+#define ENABLE_FEATURE_ROTATE_LOGFILE 1
++
++int (*lynq_get_value)(char *file, char *section, char *key, char *tmp);
++int (*lynq_set_value)(char *section, char *key, char *value);
#define DEBUG 0
-@@ -1063,6 +1065,9 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv)
+@@ -1102,11 +1108,43 @@
+ #undef recvbuf
+ }
+
++void syslog_get_uci_config_item(char* query_string, int* value)
++{
++ char get_propty_log_data[64];
++ memset(get_propty_log_data,0,64);
++ if(0 == lynq_get_value("lynq_uci","lynq_log",query_string,get_propty_log_data))
++ {
++ *value = atoi(get_propty_log_data);
++ printf("%s :%d\n",query_string,*value);
++ }
++ else
++ {
++ snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",*value);
++ lynq_set_value("lynq_log",query_string, get_propty_log_data);
++ }
++}
++
++void syslog_get_uci_config(int* lynq_syslog_filesize, int* lynq_syslog_rotate)
++{
++ if(NULL != lynq_get_value && (NULL != lynq_set_value))
++ {
++ syslog_get_uci_config_item("syslog_flie_size",lynq_syslog_filesize);
++ syslog_get_uci_config_item("syslog_flie_rotate",lynq_syslog_rotate);
++ }
++}
++
+ int syslogd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int syslogd_main(int argc UNUSED_PARAM, char **argv)
+ {
+ int opts;
+ char OPTION_DECL;
++
++ void *handle_uci;
++
++ int lynq_syslog_filesize = 15*1024*1024;
++ int lynq_syslog_rotate = 1;
++ const char *lynq_libpath_uci = "/lib64/liblynq-uci.so";
++
+ #if ENABLE_FEATURE_REMOTE_LOG
+ llist_t *remoteAddrList = NULL;
+ #endif
+@@ -1162,6 +1200,14 @@
//umask(0); - why??
write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
-+ G.logFileSize = 15*1024*1024;
-+ G.logFileRotate = 1;
-+
++ handle_uci = dlopen(lynq_libpath_uci,RTLD_NOW);
++ lynq_get_value = (int (*)(void))dlsym(handle_uci,"lynq_get_value");
++ lynq_set_value = (int (*)(char *section, char *key, char *value))dlsym(handle_uci,"lynq_set_value");
++ syslog_get_uci_config(&lynq_syslog_filesize, &lynq_syslog_rotate);
++
++ G.logFileSize = lynq_syslog_filesize;
++ G.logFileRotate = lynq_syslog_rotate;
++
do_syslogd();
/* return EXIT_SUCCESS; */
}
\ No newline at end of file