Make no local logging a runtime option for network logging...
authorEric Andersen <andersen@codepoet.org>
Fri, 8 Dec 2000 19:52:01 +0000 (19:52 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 8 Dec 2000 19:52:01 +0000 (19:52 -0000)
applets/usage.c
docs/busybox.pod
docs/busybox.sgml
sysklogd/syslogd.c
syslogd.c
usage.c

index 35d69df42347c1871c818256a30d8deb0c51dc8d..75c421a09dc5e009394c9840d1e4ba68b5372681 100644 (file)
@@ -1176,6 +1176,7 @@ const char syslogd_usage[] =
        "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)\n"
 #ifdef BB_FEATURE_REMOTE_LOG
        "\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n"
+       "\t-N\t\tDo not log anything locally -- network logging only.\n"
 #endif
 #endif
        ;
index d518c550cc68088ef5da4eaee0a1e975d52aa672..9b92d1981ccb06ec37c1b484b407ffb6f9f017e5 100644 (file)
@@ -1702,11 +1702,12 @@ Note that this version of syslogd/klogd ignores /etc/syslog.conf.
 
 Options:
 
-       -m NUM          Interval between MARK lines (default=20min, 0=off)
+       -m NUM  Interval between MARK lines (default=20min, 0=off)
        -n              Run as a foreground process
        -K              Do not start up the klogd process
-       -O FILE         Use an alternate log file (default=/var/log/messages)
+       -O FILE Use an alternate log file (default=/var/log/messages)
        -R HOST[:PORT]  Log messages to HOST on PORT (default=514) over UDP.
+       -N      Do not log anything locally -- network logging only
 
 Example:
 
@@ -2261,4 +2262,4 @@ Enrique Zanardi <ezanardi@ull.es>
 
 =cut
 
-# $Id: busybox.pod,v 1.77 2000/11/17 17:23:16 andersen Exp $
+# $Id: busybox.pod,v 1.78 2000/12/08 19:52:01 andersen Exp $
index 530629b4d9f3c7d348a2dbe2bd04b6e0eaf061dd..1542337dd787e5936ee726ce73cce63e6b9fa9a2 100644 (file)
                        -K      Do not start up the klogd process
                        -O FILE Use an alternate log file (default=/var/log/messages)
                        -R HOST[:PORT] Log messages to HOST on PORT (default=514) over UDP.
+                       -N      Do not log anything locally -- network logging only
                </screen>
                </para>
 
index bb0df8c5195a792eb09783fce87db6b0311e72e6..75d73e322bd07f79aa284d402617b16f9a6afb65 100644 (file)
@@ -79,13 +79,14 @@ static char LocalHostName[32];
 #ifdef BB_FEATURE_REMOTE_LOG
 #include <netinet/in.h>
 /* udp socket for logging to remote host */
-static int  remotefd = -1;
+static int remotefd = -1;
 /* where do we log? */
 static char *RemoteHost;
 /* what port to log to? */
-static int  RemotePort = 514;
+static int RemotePort = 514;
 /* To remote log or not to remote log, that is the question. */
-static int  doRemoteLog = FALSE;
+static int doRemoteLog = FALSE;
+static int local_logging = TRUE;
 #endif
 
 /* Note: There is also a function called "message()" in init.c */
@@ -139,9 +140,9 @@ static void logMessage (int pri, char *msg)
 
        if (pri != 0) {
                for (c_fac = facilitynames;
-                        c_fac->c_name && !(c_fac->c_val == LOG_FAC(pri) << 3); c_fac++);
+                               c_fac->c_name && !(c_fac->c_val == LOG_FAC(pri) << 3); c_fac++);
                for (c_pri = prioritynames;
-                        c_pri->c_name && !(c_pri->c_val == LOG_PRI(pri)); c_pri++);
+                               c_pri->c_name && !(c_pri->c_val == LOG_PRI(pri)); c_pri++);
                if (*c_fac->c_name == '\0' || *c_pri->c_name == '\0')
                        snprintf(res, sizeof(res), "<%d>", pri);
                else
@@ -149,7 +150,7 @@ static void logMessage (int pri, char *msg)
        }
 
        if (strlen(msg) < 16 || msg[3] != ' ' || msg[6] != ' ' ||
-               msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') {
+                       msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') {
                time(&now);
                timestamp = ctime(&now) + 4;
                timestamp[15] = '\0';
@@ -163,28 +164,29 @@ static void logMessage (int pri, char *msg)
 
 #ifdef BB_FEATURE_REMOTE_LOG
        /* send message to remote logger */
-        if ( -1 != remotefd){
+       if ( -1 != remotefd){
 #define IOV_COUNT 2
-          struct iovec iov[IOV_COUNT];
-          struct iovec *v = iov;
-
-          bzero(&res, sizeof(res));
-          snprintf(res, sizeof(res), "<%d>", pri);
-          v->iov_base = res ;
-          v->iov_len = strlen(res);          
-          v++;
-               
-          v->iov_base = msg;
-          v->iov_len = strlen(msg);          
-
-          if ( -1 == writev(remotefd,iov, IOV_COUNT)){
-            error_msg_and_die("syslogd: cannot write to remote file handle on" 
-                       "%s:%d\n",RemoteHost,RemotePort);
-          }
-        } else
+               struct iovec iov[IOV_COUNT];
+               struct iovec *v = iov;
+
+               bzero(&res, sizeof(res));
+               snprintf(res, sizeof(res), "<%d>", pri);
+               v->iov_base = res ;
+               v->iov_len = strlen(res);          
+               v++;
+
+               v->iov_base = msg;
+               v->iov_len = strlen(msg);          
+
+               if ( -1 == writev(remotefd,iov, IOV_COUNT)){
+                       error_msg_and_die("syslogd: cannot write to remote file handle on" 
+                                       "%s:%d\n",RemoteHost,RemotePort);
+               }
+       }
+       if (local_logging == TRUE)
 #endif
-       /* now spew out the message to wherever it is supposed to go */
-       message("%s %s %s %s\n", timestamp, LocalHostName, res, msg);
+               /* now spew out the message to wherever it is supposed to go */
+               message("%s %s %s %s\n", timestamp, LocalHostName, res, msg);
 
 
 }
@@ -529,6 +531,9 @@ extern int syslogd_main(int argc, char **argv)
                           doRemoteLog = TRUE;
                           stopDoingThat = TRUE;
                           break;
+                       case 'N':
+                               local_logging = FALSE;
+                               break;
 #endif
                        default:
                                usage(syslogd_usage);
index bb0df8c5195a792eb09783fce87db6b0311e72e6..75d73e322bd07f79aa284d402617b16f9a6afb65 100644 (file)
--- a/syslogd.c
+++ b/syslogd.c
@@ -79,13 +79,14 @@ static char LocalHostName[32];
 #ifdef BB_FEATURE_REMOTE_LOG
 #include <netinet/in.h>
 /* udp socket for logging to remote host */
-static int  remotefd = -1;
+static int remotefd = -1;
 /* where do we log? */
 static char *RemoteHost;
 /* what port to log to? */
-static int  RemotePort = 514;
+static int RemotePort = 514;
 /* To remote log or not to remote log, that is the question. */
-static int  doRemoteLog = FALSE;
+static int doRemoteLog = FALSE;
+static int local_logging = TRUE;
 #endif
 
 /* Note: There is also a function called "message()" in init.c */
@@ -139,9 +140,9 @@ static void logMessage (int pri, char *msg)
 
        if (pri != 0) {
                for (c_fac = facilitynames;
-                        c_fac->c_name && !(c_fac->c_val == LOG_FAC(pri) << 3); c_fac++);
+                               c_fac->c_name && !(c_fac->c_val == LOG_FAC(pri) << 3); c_fac++);
                for (c_pri = prioritynames;
-                        c_pri->c_name && !(c_pri->c_val == LOG_PRI(pri)); c_pri++);
+                               c_pri->c_name && !(c_pri->c_val == LOG_PRI(pri)); c_pri++);
                if (*c_fac->c_name == '\0' || *c_pri->c_name == '\0')
                        snprintf(res, sizeof(res), "<%d>", pri);
                else
@@ -149,7 +150,7 @@ static void logMessage (int pri, char *msg)
        }
 
        if (strlen(msg) < 16 || msg[3] != ' ' || msg[6] != ' ' ||
-               msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') {
+                       msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') {
                time(&now);
                timestamp = ctime(&now) + 4;
                timestamp[15] = '\0';
@@ -163,28 +164,29 @@ static void logMessage (int pri, char *msg)
 
 #ifdef BB_FEATURE_REMOTE_LOG
        /* send message to remote logger */
-        if ( -1 != remotefd){
+       if ( -1 != remotefd){
 #define IOV_COUNT 2
-          struct iovec iov[IOV_COUNT];
-          struct iovec *v = iov;
-
-          bzero(&res, sizeof(res));
-          snprintf(res, sizeof(res), "<%d>", pri);
-          v->iov_base = res ;
-          v->iov_len = strlen(res);          
-          v++;
-               
-          v->iov_base = msg;
-          v->iov_len = strlen(msg);          
-
-          if ( -1 == writev(remotefd,iov, IOV_COUNT)){
-            error_msg_and_die("syslogd: cannot write to remote file handle on" 
-                       "%s:%d\n",RemoteHost,RemotePort);
-          }
-        } else
+               struct iovec iov[IOV_COUNT];
+               struct iovec *v = iov;
+
+               bzero(&res, sizeof(res));
+               snprintf(res, sizeof(res), "<%d>", pri);
+               v->iov_base = res ;
+               v->iov_len = strlen(res);          
+               v++;
+
+               v->iov_base = msg;
+               v->iov_len = strlen(msg);          
+
+               if ( -1 == writev(remotefd,iov, IOV_COUNT)){
+                       error_msg_and_die("syslogd: cannot write to remote file handle on" 
+                                       "%s:%d\n",RemoteHost,RemotePort);
+               }
+       }
+       if (local_logging == TRUE)
 #endif
-       /* now spew out the message to wherever it is supposed to go */
-       message("%s %s %s %s\n", timestamp, LocalHostName, res, msg);
+               /* now spew out the message to wherever it is supposed to go */
+               message("%s %s %s %s\n", timestamp, LocalHostName, res, msg);
 
 
 }
@@ -529,6 +531,9 @@ extern int syslogd_main(int argc, char **argv)
                           doRemoteLog = TRUE;
                           stopDoingThat = TRUE;
                           break;
+                       case 'N':
+                               local_logging = FALSE;
+                               break;
 #endif
                        default:
                                usage(syslogd_usage);
diff --git a/usage.c b/usage.c
index 35d69df42347c1871c818256a30d8deb0c51dc8d..75c421a09dc5e009394c9840d1e4ba68b5372681 100644 (file)
--- a/usage.c
+++ b/usage.c
@@ -1176,6 +1176,7 @@ const char syslogd_usage[] =
        "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)\n"
 #ifdef BB_FEATURE_REMOTE_LOG
        "\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n"
+       "\t-N\t\tDo not log anything locally -- network logging only.\n"
 #endif
 #endif
        ;