From 5994633186da9856b21592b8b3c8f4fd27fccbef Mon Sep 17 00:00:00 2001 From: Nathan Neulinger Date: Thu, 15 Mar 2001 18:47:50 +0000 Subject: [PATCH] bosserver-syslog-option-including-selectable-facility-20010315 "Simple patch to add "-syslog" option to bosserver. Causes it to direct all logging activity to syslogd instead of to logs/BosLog" currently unimplemented for NT ==================== This delta was composed from multiple commits as part of the CVS->Git migration. The checkin message with each commit was inconsistent. The following are the additional commit messages. ==================== Don't use a static outside its scope --- src/bozo/bosserver.c | 108 +++++++++++++++++++++++++++++-------------- 1 file changed, 73 insertions(+), 35 deletions(-) diff --git a/src/bozo/bosserver.c b/src/bozo/bosserver.c index 0fce29aeb..347a93090 100644 --- a/src/bozo/bosserver.c +++ b/src/bozo/bosserver.c @@ -24,6 +24,7 @@ #else #include #include +#include #endif /* AFS_NT40_ENV */ #include #include @@ -55,6 +56,10 @@ FILE *bozo_logFile; 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; @@ -117,6 +122,20 @@ bozo_ReBozo() { i++; } +#ifndef AFS_NT40_ENV + /* if syslog logging is on, pass "-syslog" to new bosserver */ + if (DoSyslog) { + char *arg=(char *)malloc(40); /* enough for -syslog=# */ + 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 +733,16 @@ char **envp; /* 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 +759,9 @@ char **envp; /* 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); @@ -772,21 +804,24 @@ char **envp; background(); #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); + 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); + } + /* keep log closed normally, so can be removed */ + fclose(bozo_logFile); + } else { +#ifndef AFS_NT40_ENV + openlog("bosserver", LOG_PID, DoSyslogFacility); +#endif } - /* keep log closed normally, so can be removed */ - - fclose(bozo_logFile); - /* Write current state of directory permissions to log file */ DirAccessOK (); @@ -881,30 +916,33 @@ char *a, *b, *c, *d, *e, *f; { char tdate[26]; time_t myTime; - myTime = time(0); - strcpy(tdate, ctime(&myTime)); /* copy out of static area asap */ - tdate[24] = ':'; + 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] = ':'; - /* log normally closed, so can be removed */ + /* log normally closed, so can be removed */ - bozo_logFile=fopen(AFSDIR_SERVER_BOZLOG_FILEPATH, "a"); - if(bozo_logFile == NULL) - { - printf("bosserver: WARNING: problem with %s", AFSDIR_SERVER_BOZLOG_FILEPATH); - fflush(stdout); - } + bozo_logFile=fopen(AFSDIR_SERVER_BOZLOG_FILEPATH, "a"); + if(bozo_logFile == NULL) { + printf("bosserver: WARNING: problem with %s", AFSDIR_SERVER_BOZLOG_FILEPATH); + fflush(stdout); + } - if (bozo_logFile) { - fprintf(bozo_logFile, "%s ", tdate); - fprintf(bozo_logFile, a, b, c, d, e, f); - fflush(bozo_logFile); - } - else { - printf("%s ", tdate); - printf(a, b, c, d, e, f); + if (bozo_logFile) { + fprintf(bozo_logFile, "%s ", tdate); + fprintf(bozo_logFile, a, b, c, d, e, f); + fflush(bozo_logFile); + } else { + printf("%s ", tdate); + printf(a, b, c, d, e, f); + } + + /* close so rm BosLog works */ + fclose(bozo_logFile); } - - /* close so rm BosLog works */ - - fclose(bozo_logFile); } -- 2.39.5