Adds requested support for configuring the facility code.

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  [EMAIL PROTECTED]
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216
Index: bozo/bosserver.c
===================================================================
RCS file: /cvs/openafs/src/bozo/bosserver.c,v
retrieving revision 1.6
diff -u -r1.6 bosserver.c
--- bozo/bosserver.c    2001/03/05 19:13:24     1.6
+++ bozo/bosserver.c    2001/03/15 16:49:36
@@ -24,6 +24,7 @@
 #else
 #include <unistd.h>
 #include <netinet/in.h>
+#include <syslog.h>
 #endif /* AFS_NT40_ENV */
 #include <afs/cellconfig.h>
 #include <rx/rx.h>
@@ -55,6 +56,10 @@
 extern int rx_stackSize;    /* for rx_SetStackSize macro */
 
 int DoLogging = 0;
+int DoSyslog = 0;
+#ifndef AFS_NT40_EnV
+int DoSyslogFacility = LOG_DAEMON;
+#endif
 static afs_int32 nextRestart;
 static afs_int32 nextDay;
 
@@ -116,6 +121,19 @@
        argv[i] = "-log";
        i++;
     }
+#ifndef AFS_NT40_ENV
+    /* if syslog logging is on, pass "-syslog" to new bosserver */
+    if (DoSyslog) {
+               static char arg[40];
+               if ( DoSyslogFacility != LOG_DAEMON ) {
+                       snprintf(arg, 40, "-syslog=%d", DoSyslogFacility);
+               } else {
+                       strcpy(arg, "-syslog");
+               }
+               argv[i] = arg;
+               i++;
+    }
+#endif
 
     /* null-terminate argument list */
     argv[i] = NULL;
@@ -714,6 +732,16 @@
            /* set extra logging flag */
            DoLogging = 1;
        }
+#ifndef AFS_NT40_ENV
+       else if (strcmp(argv[code], "-syslog")==0) {
+           /* set syslog logging flag */
+           DoSyslog = 1;
+       } 
+       else if (strncmp(argv[code], "-syslog=",8)==0) {
+               DoSyslog = 1;
+               DoSyslogFacility = atoi(argv[code]+8);
+       }
+#endif
        else if (strcmp(argv[code], "-enable_peer_stats")==0) {
            rx_enablePeerRPCStats();
        }
@@ -730,6 +758,9 @@
            /* hack to support help flag */
 
            printf("Usage: bosserver [-noauth] [-log] "
+#ifndef AFS_NT40_ENV
+                       "[-syslog[=FACILITY]] "
+#endif
                   /* "[-enable_peer_stats] [-enable_process_stats] " */
                   "[-help]\n");
            fflush(stdout);
@@ -773,19 +804,27 @@
 #endif /* ! AFS_NT40_ENV */
 
     /* switch to logging information to the BosLog file */
-    strcpy(namebuf, AFSDIR_BOZLOG_FILE);
-    strcat(namebuf, ".old");
-    renamefile(AFSDIR_BOZLOG_FILE, namebuf);   /* try rename first */
-    bozo_logFile = fopen(AFSDIR_BOZLOG_FILE, "a");
-    if (!bozo_logFile) {
-       printf("bosserver: can't initialize log file (%s).\n",
-              AFSDIR_SERVER_BOZLOG_FILEPATH);
-       exit(1);
-    }
-
-    /* keep log closed normally, so can be removed */
+       if ( ! DoSyslog )
+       {
+           strcpy(namebuf, AFSDIR_BOZLOG_FILE);
+           strcat(namebuf, ".old");
+           renamefile(AFSDIR_BOZLOG_FILE, namebuf);    /* try rename first */
+           bozo_logFile = fopen(AFSDIR_BOZLOG_FILE, "a");
+           if (!bozo_logFile) {
+               printf("bosserver: can't initialize log file (%s).\n",
+                      AFSDIR_SERVER_BOZLOG_FILEPATH);
+               exit(1);
+           }
 
-    fclose(bozo_logFile);
+        /* keep log closed normally, so can be removed */
+        fclose(bozo_logFile);
+       }
+       else
+       {
+#ifndef AFS_NT40_ENV
+               openlog("bosserver", LOG_PID, DoSyslogFacility);
+#endif
+       }
 
     /* Write current state of directory permissions to log file */
     DirAccessOK ();
@@ -881,6 +920,15 @@
     char tdate[26];
     time_t myTime;
 
+       if ( DoSyslog )
+       {
+#ifndef AFS_NT40_ENV
+               syslog(LOG_INFO, a, b, c, d, e, f);
+#endif
+       }
+       else
+       {
+
     myTime = time(0);
     strcpy(tdate, ctime(&myTime));     /* copy out of static area asap */
     tdate[24] = ':';
@@ -907,4 +955,6 @@
     /* close so rm BosLog works */
 
     fclose(bozo_logFile);
+
+       }
 }

Reply via email to