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
-+
-+
-+