[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