From ea9065072c91b6397cb3cb597f248d23415169f0 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 5 Apr 2001 20:55:17 +0000 Subject: [PATCH] Some cleanups/fixes for the syslogd circular buffer code from Gennady Feldman. --- sysklogd/syslogd.c | 16 +++++++++------- syslogd.c | 16 +++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index e83ce48ae..6aec78b4e 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -119,7 +119,7 @@ static inline void sem_up(int semid) */ static inline void sem_down(int semid) { - if ( semop(semid, SMwdn, 2) == -1 ) + if ( semop(semid, SMwdn, 3) == -1 ) perror_msg_and_die("semop[SMwdn]"); } @@ -155,6 +155,8 @@ void ipcsyslog_init(void){ perror_msg_and_die("semget"); }else perror_msg_and_die("semget"); + } else { + sem_up(s_semid); } }else{ printf("Buffer already allocated just grab the semaphore?"); @@ -514,6 +516,12 @@ static void doSyslogd (void) FD_ZERO (&fds); FD_SET (sock_fd, &fds); +#ifdef BB_FEATURE_IPC_SYSLOG + if (circular_logging == TRUE ){ + ipcsyslog_init(); + } +#endif + #ifdef BB_FEATURE_REMOTE_LOG if (doRemoteLog == TRUE){ init_RemoteLog(); @@ -619,12 +627,6 @@ extern int syslogd_main(int argc, char **argv) umask(0); -#ifdef BB_FEATURE_IPC_SYSLOG - if (circular_logging == TRUE ){ - ipcsyslog_init(); - } -#endif - if (doFork == TRUE) { if (daemon(0, 1) < 0) perror_msg_and_die("daemon"); diff --git a/syslogd.c b/syslogd.c index e83ce48ae..6aec78b4e 100644 --- a/syslogd.c +++ b/syslogd.c @@ -119,7 +119,7 @@ static inline void sem_up(int semid) */ static inline void sem_down(int semid) { - if ( semop(semid, SMwdn, 2) == -1 ) + if ( semop(semid, SMwdn, 3) == -1 ) perror_msg_and_die("semop[SMwdn]"); } @@ -155,6 +155,8 @@ void ipcsyslog_init(void){ perror_msg_and_die("semget"); }else perror_msg_and_die("semget"); + } else { + sem_up(s_semid); } }else{ printf("Buffer already allocated just grab the semaphore?"); @@ -514,6 +516,12 @@ static void doSyslogd (void) FD_ZERO (&fds); FD_SET (sock_fd, &fds); +#ifdef BB_FEATURE_IPC_SYSLOG + if (circular_logging == TRUE ){ + ipcsyslog_init(); + } +#endif + #ifdef BB_FEATURE_REMOTE_LOG if (doRemoteLog == TRUE){ init_RemoteLog(); @@ -619,12 +627,6 @@ extern int syslogd_main(int argc, char **argv) umask(0); -#ifdef BB_FEATURE_IPC_SYSLOG - if (circular_logging == TRUE ){ - ipcsyslog_init(); - } -#endif - if (doFork == TRUE) { if (daemon(0, 1) < 0) perror_msg_and_die("daemon");