Make syslog a separate option, and do it better.
authormdw <mdw>
Wed, 22 Dec 1999 15:44:10 +0000 (15:44 +0000)
committermdw <mdw>
Wed, 22 Dec 1999 15:44:10 +0000 (15:44 +0000)
fw.c

diff --git a/fw.c b/fw.c
index e5537fc..4db1fdb 100644 (file)
--- a/fw.c
+++ b/fw.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: fw.c,v 1.5 1999/10/22 22:47:50 mdw Exp $
+ * $Id: fw.c,v 1.6 1999/12/22 15:44:10 mdw Exp $
  *
  * Port forwarding thingy
  *
@@ -29,6 +29,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: fw.c,v $
+ * Revision 1.6  1999/12/22 15:44:10  mdw
+ * Make syslog a separate option, and do it better.
+ *
  * Revision 1.5  1999/10/22 22:47:50  mdw
  * Grammar changes.  Also, don't enable SIGINT if it's currently ignored.
  *
@@ -120,8 +123,7 @@ void fw_log(time_t t, const char *fmt, ...)
     t = time(0);
   tm = localtime(&t);
   DENSURE(&d, 64);
-  d.len += strftime(d.buf, d.sz, "%Y-%m-%d %H:%M:%S", tm);
-  DPUTC(&d, ' ');
+  d.len += strftime(d.buf, d.sz, "%Y-%m-%d %H:%M:%S ", tm);
   va_start(ap, fmt);
   dstr_vputf(&d, fmt, ap);
   va_end(ap);
@@ -193,7 +195,7 @@ static void version(FILE *fp)
 
 static void usage(FILE *fp)
 {
-  pquis(fp, "Usage: $ [-db] [-f file] [config statements...]\n");
+  pquis(fp, "Usage: $ [-dql] [-f file] [config statements...]\n");
 }
 
 static void help(FILE *fp)
@@ -206,15 +208,17 @@ An excessively full-featured port-forwarder, which subsumes large chunks\n\
 of the functionality of inetd, netcat, and normal cat.  Options available\n\
 are:\n\
 \n\
--h, --help             Display this help message.\n\
--v, --version          Display the program's version number.\n\
--u, --usage            Display a terse usage summary.\n\
+-h, --help       Display this help message.\n\
+-v, --version    Display the program's version number.\n\
+-u, --usage      Display a terse usage summary.\n\
 \n\
--g, --grammar          Show a summary of the configuration language.\n\
--o, --options          Show a summary of the source and target options.\n\
+-g, --grammar    Show a summary of the configuration language.\n\
+-o, --options    Show a summary of the source and target options.\n\
 \n\
--f, --file=FILE                Read configuration from a file.\n\
--d, --daemon           Fork into background after initializing.\n\
+-f, --file=FILE          Read configuration from a file.\n\
+-q, --quiet      Don't emit any logging information.\n\
+-d, --daemon     Fork into background after initializing.\n\
+-l, --syslog     Send log output to the system logger.\n\
 \n\
 Configuration may be supplied in one or more configuration files, or on\n\
 the command line (or both).  If no `-f' option is present, and no\n\
@@ -344,6 +348,7 @@ int main(int argc, char *argv[])
   enum {
     f_bogus = 1,
     f_file = 2,
+    f_syslog = 4,
     f_fork = 8
   };
 
@@ -397,13 +402,15 @@ int main(int argc, char *argv[])
       { "file",                OPTF_ARGREQ,    0,      'f' },
       { "fork",                0,              0,      'd' },
       { "daemon",      0,              0,      'd' },
+      { "syslog",      0,              0,      'l' },
+      { "log",         0,              0,      'l' },
       { "quiet",       0,              0,      'q' },
 
       /* --- Magic terminator --- */
 
       { 0,             0,              0,      0 }
     };
-    int i = mdwopt(argc, argv, "+hvu go f:d", opts, 0, 0, 0);
+    int i = mdwopt(argc, argv, "+hvu go f:dl", opts, 0, 0, 0);
 
     if (i < 0)
       break;
@@ -442,6 +449,9 @@ int main(int argc, char *argv[])
       case 'd':
        f |= f_fork;
        break;
+      case 'l':
+       f |= f_syslog;
+       break;
       case 'q':
        flags |= FW_QUIET;
        break;
@@ -492,7 +502,9 @@ int main(int argc, char *argv[])
     kid = fork();
     if (kid != 0)
       _exit(0);
+  }
 
+  if (f & f_syslog) {
     flags |= FW_SYSLOG;
     openlog(QUIS, 0, LOG_DAEMON);
   }