Merge "Revert "[Feature][T8TSK-274][syslog]  syslog 4k/8k/16k buffer"" into GSW3.0-No-Connman
diff --git a/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch b/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
index f2f06bb..d45f497 100755
--- a/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
+++ b/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
@@ -1,260 +1,71 @@
 --- busybox-1.29.3/sysklogd/syslogd.c	2018-07-02 19:23:06.000000000 +0800
 +++ busybox-1.29.3/sysklogd/syslogdnew.c	2022-09-29 13:47:26.318538618 +0800
-@@ -165,6 +165,7 @@
+@@ -165,6 +165,8 @@
  
  #include <sys/un.h>
  #include <sys/uio.h>
 +#include <dlfcn.h>
++
  
  #if ENABLE_FEATURE_REMOTE_LOG
  #include <netinet/in.h>
-@@ -175,8 +176,11 @@
- #include <sys/sem.h>
+@@ -176,6 +178,10 @@
  #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
  
- /* MARK code is not very useful, is bloat, and broken:
-@@ -210,6 +214,7 @@
- 
- typedef struct logFile_t {
- 	const char *path;
-+	FILE * fp;
- 	int fd;
- 	time_t last_log_time;
- #if ENABLE_FEATURE_ROTATE_LOGFILE
-@@ -677,6 +682,79 @@
- static void log_to_kmsg(int pri UNUSED_PARAM, const char *msg UNUSED_PARAM) {}
- #endif /* FEATURE_KMSG_SYSLOG */
- 
-+int g_syslog_buffer_size=8*1024;
-+char g_syslog_buffer[16*1024];
-+
-+int syslog_is_buffer_write()
-+{
-+	if(g_syslog_buffer_size>0 && g_syslog_buffer_size<= 16*1024)
-+	{
-+		return true;
-+	}
-+	else 
-+	{
-+		return false;
-+	}
-+}
-+
-+void syslog_close_fp_fd(FILE * fp, int* fd)
-+{
-+	if(syslog_is_buffer_write() && (*fd) > 1)
-+    {   
-+    	fclose(fp);	
-+    }
-+	else 
-+	{
-+		close(*fd);
-+	}
-+	(*fd) = -1;
-+}
-+
-+void syslog_get_fp_fd(const char * path, FILE** fp, int* fd)
-+{
-+	if(syslog_is_buffer_write())
-+	{
-+		*fp = fopen(path, "a+");
-+		if(*fp!=NULL)
-+		{
-+			*fd=fileno(*fp);
-+			if(setvbuf(*fp,g_syslog_buffer,_IOFBF,g_syslog_buffer_size)!=0)
-+			{
-+				fclose(*fp);
-+				*fd=-1;
-+			}    
-+            else
-+            {
-+                int flags = fcntl(*fd, F_GETFL, 0);
-+                flags |= O_NONBLOCK;
-+                fcntl(*fd, F_SETFL, flags);
-+            }            
-+		}
-+		else
-+		{
-+			*fd=-1;
-+		}            
-+	}
-+	else
-+	{
-+	 	*fd = open(path, O_WRONLY | O_CREAT
-+		| O_NOCTTY | O_APPEND | O_NONBLOCK,
-+		0666);
-+	}
-+}
-+
-+int syslog_write(FILE* fp, int fd, char *msg, int len)
-+{
-+	if(syslog_is_buffer_write() && fd > 1)
-+	{
-+	    return fwrite(msg,1,len,fp);
-+	}	
-+	else
-+	{
-+		return full_write(fd, msg, len);
-+	}
-+}
-+
- /* Print a message to the log file. */
- static void log_locally(time_t now, char *msg, logFile_t *log_file)
- {
-@@ -696,11 +774,14 @@
- 		 */
- 		if (!now)
- 			now = time(NULL);
--		if (log_file->last_log_time != now) {
--			log_file->last_log_time = now;
--			close(log_file->fd);
--			goto reopen;
--		}
-+		if((!syslog_is_buffer_write()))
-+		{
-+			if (log_file->last_log_time != now) {
-+				log_file->last_log_time = now;
-+				close(log_file->fd);
-+				goto reopen;	
-+			}
-+		}					
- 	}
- 	else if (log_file->fd == 1) {
- 		/* We are logging to stdout: do nothing */
-@@ -710,10 +791,8 @@
- 			log_file->fd = 1;
- 			/* log_file->isRegular = 0; - already is */
- 		} else {
-- reopen:
--			log_file->fd = open(log_file->path, O_WRONLY | O_CREAT
--					| O_NOCTTY | O_APPEND | O_NONBLOCK,
--					0666);
-+ reopen:    syslog_get_fp_fd(log_file->path, &(log_file->fp), &(log_file->fd));
-+			
- 			if (log_file->fd < 0) {
- 				/* cannot open logfile? - print to /dev/console then */
- 				int fd = device_open(DEV_CONSOLE, O_WRONLY | O_NOCTTY | O_NONBLOCK);
-@@ -759,6 +838,10 @@
- 				rename(oldFile, newFile);
- 			}
- 			/* newFile == "f.0" now */
-+			if(syslog_is_buffer_write() && log_file->fd > 1)
-+			{
-+				fflush(log_file->fp);
-+			}			
- 			rename(log_file->path, newFile);
- 		}
- 
-@@ -776,15 +859,16 @@
- 		fl.l_type = F_UNLCK;
- 		fcntl(log_file->fd, F_SETLKW, &fl);
- #endif
--		close(log_file->fd);
-+        syslog_close_fp_fd(log_file->fp,&(log_file->fd));        
- 		goto reopen;
- 	}
- /* TODO: what to do on write errors ("disk full")? */
--	len = full_write(log_file->fd, msg, len);
-+	len = syslog_write(log_file->fp,log_file->fd,msg,len);	
-+	
- 	if (len > 0)
- 		log_file->size += len;
- #else
--	full_write(log_file->fd, msg, len);
-+	syslog_write(log_file->fp,log_file->fd,msg,len);	
- #endif
- 
- #ifdef SYSLOGD_WRLOCK
-@@ -974,6 +1058,11 @@
- }
- #endif
- 
-+static void syslog_signal_handler(int signum) {    
-+	fflush_all();
-+}
-+
-+
- static void do_syslogd(void) NORETURN;
- static void do_syslogd(void)
- {
-@@ -997,6 +1086,7 @@
- 	signal(SIGALRM, do_mark);
- 	alarm(G.markInterval);
- #endif
-+    signal(SIGUSR1, syslog_signal_handler); 
- 	xmove_fd(create_socket(), STDIN_FILENO);
- 
- 	if (option_mask32 & OPT_circularlog)
-@@ -1089,6 +1179,7 @@
- 	} /* while (!bb_got_signal) */
- 
- 	timestamp_and_log_internal("syslogd exiting");
-+	syslog_close_fp_fd(G.logFile.fp,&(G.logFile.fd));    
- 	remove_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
- 	ipcsyslog_cleanup();
- 	if (option_mask32 & OPT_kmsg)
-@@ -1097,11 +1188,45 @@
- #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, int* lynq_syslog_buffer_size)
-+{
-+	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); 
-+           syslog_get_uci_config_item("syslog_flie_buffer_size",lynq_syslog_buffer_size);         	
-+	}
-+}
-+
- int syslogd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
- int syslogd_main(int argc UNUSED_PARAM, char **argv)
+@@ -1102,6 +1113,13 @@
  {
  	int opts;
  	char OPTION_DECL;
 +    
 +    void *handle_uci;
-+
++    static char get_propty_log_data[64] = {0};
 +    int lynq_syslog_filesize = 80*1024*1024;
 +    int lynq_syslog_rotate = 10;
 +    const char *lynq_libpath_uci = "/lib64/liblynq-uci.so";
-+    int lynq_syslog_buffer_size = 8*1024;
 +    
  #if ENABLE_FEATURE_REMOTE_LOG
  	llist_t *remoteAddrList = NULL;
  #endif
-@@ -1157,6 +1282,14 @@
+@@ -1157,6 +1175,38 @@
  	//umask(0); - why??
  	write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
  
 +    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_syslog_buffer_size);
++    if(NULL != lynq_get_value && (NULL != lynq_set_value))
++    {
++        memset(get_propty_log_data,0,64);
++        if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_size",get_propty_log_data))
++        {
++            lynq_syslog_filesize = atoi(get_propty_log_data);
++            printf("lynq_syslog_filesize:%d\n",lynq_syslog_filesize);
++        }
++        else
++        {		     
++            snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_filesize);
++            lynq_set_value("lynq_log","syslog_flie_size", get_propty_log_data);
++        }
++        memset(get_propty_log_data,0,64);
++        if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_rotate",get_propty_log_data))
++        {
++            lynq_syslog_rotate = atoi(get_propty_log_data);
++            printf("lynq_syslog_rotate:%d\n",lynq_syslog_rotate);
++        }
++        else
++        {		     
++            snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_rotate);
++            lynq_set_value("lynq_log","syslog_flie_rotate", get_propty_log_data);
++        }
++    }
 +
 +	G.logFileSize = lynq_syslog_filesize;
 +	G.logFileRotate = lynq_syslog_rotate;
@@ -262,10 +73,3 @@
  	do_syslogd();
  	/* return EXIT_SUCCESS; */
  }
-@@ -1171,3 +1304,6 @@
- #undef OPTION_STR
- #undef OPTION_DECL
- #undef OPTION_PARAM
-+
-+
-+
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 f2f06bb..d45f497 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
@@ -1,260 +1,71 @@
 --- busybox-1.29.3/sysklogd/syslogd.c	2018-07-02 19:23:06.000000000 +0800
 +++ busybox-1.29.3/sysklogd/syslogdnew.c	2022-09-29 13:47:26.318538618 +0800
-@@ -165,6 +165,7 @@
+@@ -165,6 +165,8 @@
  
  #include <sys/un.h>
  #include <sys/uio.h>
 +#include <dlfcn.h>
++
  
  #if ENABLE_FEATURE_REMOTE_LOG
  #include <netinet/in.h>
-@@ -175,8 +176,11 @@
- #include <sys/sem.h>
+@@ -176,6 +178,10 @@
  #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
  
- /* MARK code is not very useful, is bloat, and broken:
-@@ -210,6 +214,7 @@
- 
- typedef struct logFile_t {
- 	const char *path;
-+	FILE * fp;
- 	int fd;
- 	time_t last_log_time;
- #if ENABLE_FEATURE_ROTATE_LOGFILE
-@@ -677,6 +682,79 @@
- static void log_to_kmsg(int pri UNUSED_PARAM, const char *msg UNUSED_PARAM) {}
- #endif /* FEATURE_KMSG_SYSLOG */
- 
-+int g_syslog_buffer_size=8*1024;
-+char g_syslog_buffer[16*1024];
-+
-+int syslog_is_buffer_write()
-+{
-+	if(g_syslog_buffer_size>0 && g_syslog_buffer_size<= 16*1024)
-+	{
-+		return true;
-+	}
-+	else 
-+	{
-+		return false;
-+	}
-+}
-+
-+void syslog_close_fp_fd(FILE * fp, int* fd)
-+{
-+	if(syslog_is_buffer_write() && (*fd) > 1)
-+    {   
-+    	fclose(fp);	
-+    }
-+	else 
-+	{
-+		close(*fd);
-+	}
-+	(*fd) = -1;
-+}
-+
-+void syslog_get_fp_fd(const char * path, FILE** fp, int* fd)
-+{
-+	if(syslog_is_buffer_write())
-+	{
-+		*fp = fopen(path, "a+");
-+		if(*fp!=NULL)
-+		{
-+			*fd=fileno(*fp);
-+			if(setvbuf(*fp,g_syslog_buffer,_IOFBF,g_syslog_buffer_size)!=0)
-+			{
-+				fclose(*fp);
-+				*fd=-1;
-+			}    
-+            else
-+            {
-+                int flags = fcntl(*fd, F_GETFL, 0);
-+                flags |= O_NONBLOCK;
-+                fcntl(*fd, F_SETFL, flags);
-+            }            
-+		}
-+		else
-+		{
-+			*fd=-1;
-+		}            
-+	}
-+	else
-+	{
-+	 	*fd = open(path, O_WRONLY | O_CREAT
-+		| O_NOCTTY | O_APPEND | O_NONBLOCK,
-+		0666);
-+	}
-+}
-+
-+int syslog_write(FILE* fp, int fd, char *msg, int len)
-+{
-+	if(syslog_is_buffer_write() && fd > 1)
-+	{
-+	    return fwrite(msg,1,len,fp);
-+	}	
-+	else
-+	{
-+		return full_write(fd, msg, len);
-+	}
-+}
-+
- /* Print a message to the log file. */
- static void log_locally(time_t now, char *msg, logFile_t *log_file)
- {
-@@ -696,11 +774,14 @@
- 		 */
- 		if (!now)
- 			now = time(NULL);
--		if (log_file->last_log_time != now) {
--			log_file->last_log_time = now;
--			close(log_file->fd);
--			goto reopen;
--		}
-+		if((!syslog_is_buffer_write()))
-+		{
-+			if (log_file->last_log_time != now) {
-+				log_file->last_log_time = now;
-+				close(log_file->fd);
-+				goto reopen;	
-+			}
-+		}					
- 	}
- 	else if (log_file->fd == 1) {
- 		/* We are logging to stdout: do nothing */
-@@ -710,10 +791,8 @@
- 			log_file->fd = 1;
- 			/* log_file->isRegular = 0; - already is */
- 		} else {
-- reopen:
--			log_file->fd = open(log_file->path, O_WRONLY | O_CREAT
--					| O_NOCTTY | O_APPEND | O_NONBLOCK,
--					0666);
-+ reopen:    syslog_get_fp_fd(log_file->path, &(log_file->fp), &(log_file->fd));
-+			
- 			if (log_file->fd < 0) {
- 				/* cannot open logfile? - print to /dev/console then */
- 				int fd = device_open(DEV_CONSOLE, O_WRONLY | O_NOCTTY | O_NONBLOCK);
-@@ -759,6 +838,10 @@
- 				rename(oldFile, newFile);
- 			}
- 			/* newFile == "f.0" now */
-+			if(syslog_is_buffer_write() && log_file->fd > 1)
-+			{
-+				fflush(log_file->fp);
-+			}			
- 			rename(log_file->path, newFile);
- 		}
- 
-@@ -776,15 +859,16 @@
- 		fl.l_type = F_UNLCK;
- 		fcntl(log_file->fd, F_SETLKW, &fl);
- #endif
--		close(log_file->fd);
-+        syslog_close_fp_fd(log_file->fp,&(log_file->fd));        
- 		goto reopen;
- 	}
- /* TODO: what to do on write errors ("disk full")? */
--	len = full_write(log_file->fd, msg, len);
-+	len = syslog_write(log_file->fp,log_file->fd,msg,len);	
-+	
- 	if (len > 0)
- 		log_file->size += len;
- #else
--	full_write(log_file->fd, msg, len);
-+	syslog_write(log_file->fp,log_file->fd,msg,len);	
- #endif
- 
- #ifdef SYSLOGD_WRLOCK
-@@ -974,6 +1058,11 @@
- }
- #endif
- 
-+static void syslog_signal_handler(int signum) {    
-+	fflush_all();
-+}
-+
-+
- static void do_syslogd(void) NORETURN;
- static void do_syslogd(void)
- {
-@@ -997,6 +1086,7 @@
- 	signal(SIGALRM, do_mark);
- 	alarm(G.markInterval);
- #endif
-+    signal(SIGUSR1, syslog_signal_handler); 
- 	xmove_fd(create_socket(), STDIN_FILENO);
- 
- 	if (option_mask32 & OPT_circularlog)
-@@ -1089,6 +1179,7 @@
- 	} /* while (!bb_got_signal) */
- 
- 	timestamp_and_log_internal("syslogd exiting");
-+	syslog_close_fp_fd(G.logFile.fp,&(G.logFile.fd));    
- 	remove_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
- 	ipcsyslog_cleanup();
- 	if (option_mask32 & OPT_kmsg)
-@@ -1097,11 +1188,45 @@
- #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, int* lynq_syslog_buffer_size)
-+{
-+	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); 
-+           syslog_get_uci_config_item("syslog_flie_buffer_size",lynq_syslog_buffer_size);         	
-+	}
-+}
-+
- int syslogd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
- int syslogd_main(int argc UNUSED_PARAM, char **argv)
+@@ -1102,6 +1113,13 @@
  {
  	int opts;
  	char OPTION_DECL;
 +    
 +    void *handle_uci;
-+
++    static char get_propty_log_data[64] = {0};
 +    int lynq_syslog_filesize = 80*1024*1024;
 +    int lynq_syslog_rotate = 10;
 +    const char *lynq_libpath_uci = "/lib64/liblynq-uci.so";
-+    int lynq_syslog_buffer_size = 8*1024;
 +    
  #if ENABLE_FEATURE_REMOTE_LOG
  	llist_t *remoteAddrList = NULL;
  #endif
-@@ -1157,6 +1282,14 @@
+@@ -1157,6 +1175,38 @@
  	//umask(0); - why??
  	write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
  
 +    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_syslog_buffer_size);
++    if(NULL != lynq_get_value && (NULL != lynq_set_value))
++    {
++        memset(get_propty_log_data,0,64);
++        if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_size",get_propty_log_data))
++        {
++            lynq_syslog_filesize = atoi(get_propty_log_data);
++            printf("lynq_syslog_filesize:%d\n",lynq_syslog_filesize);
++        }
++        else
++        {		     
++            snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_filesize);
++            lynq_set_value("lynq_log","syslog_flie_size", get_propty_log_data);
++        }
++        memset(get_propty_log_data,0,64);
++        if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_rotate",get_propty_log_data))
++        {
++            lynq_syslog_rotate = atoi(get_propty_log_data);
++            printf("lynq_syslog_rotate:%d\n",lynq_syslog_rotate);
++        }
++        else
++        {		     
++            snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_rotate);
++            lynq_set_value("lynq_log","syslog_flie_rotate", get_propty_log_data);
++        }
++    }
 +
 +	G.logFileSize = lynq_syslog_filesize;
 +	G.logFileRotate = lynq_syslog_rotate;
@@ -262,10 +73,3 @@
  	do_syslogd();
  	/* return EXIT_SUCCESS; */
  }
-@@ -1171,3 +1304,6 @@
- #undef OPTION_STR
- #undef OPTION_DECL
- #undef OPTION_PARAM
-+
-+
-+