#include <roken.h> /* Must come after procmgmt.h */
#include <afs/opr.h>
-
-#include <afs/opr.h>
#include "afsutil.h"
#include "fileutil.h"
#include <lwp.h>
#if defined(AFS_PTHREAD_ENV)
#include <pthread.h>
static pthread_mutex_t serverLogMutex;
-#define LOCK_SERVERLOG() opr_Verify(pthread_mutex_lock(&serverLogMutex) == 0);
-#define UNLOCK_SERVERLOG() opr_Verify(pthread_mutex_unlock(&serverLogMutex) == 0);
+#define LOCK_SERVERLOG() opr_Verify(pthread_mutex_lock(&serverLogMutex) == 0)
+#define UNLOCK_SERVERLOG() opr_Verify(pthread_mutex_unlock(&serverLogMutex) == 0)
#ifdef AFS_NT40_ENV
#define NULLDEV "NUL"
WriteLogBuffer(char *buf, afs_uint32 len)
{
LOCK_SERVERLOG();
- if (serverLogFD > 0)
- (void)write(serverLogFD, buf, len);
+ if (serverLogFD > 0) {
+ if (write(serverLogFD, buf, len) < 0)
+ ; /* don't care */
+ }
UNLOCK_SERVERLOG();
}
syslog(LOG_INFO, "%s", info);
} else
#endif
- if (serverLogFD > 0)
- (void)write(serverLogFD, tbuffer, len);
+ if (serverLogFD > 0) {
+ if (write(serverLogFD, tbuffer, len) < 0)
+ ; /* don't care */
+ }
UNLOCK_SERVERLOG();
#if !defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)
}
}
+void
+LogDesWarning(void)
+{
+ /* The blank newlines help this stand out a bit more in the log. */
+ ViceLog(0, ("\n"));
+ ViceLog(0, ("WARNING: You are using single-DES keys in a KeyFile. Using single-DES\n"));
+ ViceLog(0, ("WARNING: long-term keys is considered insecure, and it is strongly\n"));
+ ViceLog(0, ("WARNING: recommended that you migrate to stronger encryption. See\n"));
+ ViceLog(0, ("WARNING: OPENAFS-SA-2013-003 on http://www.openafs.org/security/\n"));
+ ViceLog(0, ("WARNING: for details.\n"));
+ ViceLog(0, ("\n"));
+}
+
static void*
DebugOn(void *param)
{
/* don't check error */
if (!isfifo)
rk_rename(fileName, oldName);
- tempfd = open(fileName, O_WRONLY | O_TRUNC | O_CREAT | (isfifo?O_NONBLOCK:0), 0666);
+ tempfd = open(fileName, O_WRONLY | O_TRUNC | O_CREAT | O_APPEND | (isfifo?O_NONBLOCK:0), 0666);
}
if (tempfd < 0) {
return -1;
}
/* redirect stdout and stderr so random printf's don't write to data */
- (void)freopen(fileName, "a", stdout);
- (void)freopen(fileName, "a", stderr);
+ if (freopen(fileName, "a", stdout) == NULL)
+ ; /* don't care */
+ if (freopen(fileName, "a", stderr) != NULL) {
#ifdef HAVE_SETVBUF
- setvbuf(stderr, NULL, _IONBF, 0);
+ setvbuf(stderr, NULL, _IONBF, 0);
#else
- setbuf(stderr, NULL);
+ setbuf(stderr, NULL);
#endif
+ }
#if defined(AFS_PTHREAD_ENV)
opr_Verify(pthread_mutex_init(&serverLogMutex, NULL) == 0);
close(serverLogFD);
serverLogFD = open(fileName, O_WRONLY | O_APPEND | O_CREAT | (isfifo?O_NONBLOCK:0), 0666);
if (serverLogFD > 0) {
- (void)freopen(fileName, "a", stdout);
- (void)freopen(fileName, "a", stderr);
+ if (freopen(fileName, "a", stdout) == NULL)
+ ; /* don't care */
+ if (freopen(fileName, "a", stderr) != NULL) {
#ifdef HAVE_SETVBUF
#ifdef SETVBUF_REVERSED
- setvbuf(stderr, _IONBF, NULL, 0);
+ setvbuf(stderr, _IONBF, NULL, 0);
#else
- setvbuf(stderr, NULL, _IONBF, 0);
+ setvbuf(stderr, NULL, _IONBF, 0);
#endif
#else
- setbuf(stderr, NULL);
+ setbuf(stderr, NULL);
#endif
+ }
}
UNLOCK_SERVERLOG();
return serverLogFD < 0 ? -1 : 0;
}
+
+/*!
+ * Close the server log file.
+ *
+ * \note Must be preceeded by OpenLog().
+ */
+void
+CloseLog(void)
+{
+ LOCK_SERVERLOG();
+#ifndef AFS_NT40_ENV
+ if (serverLogSyslog) {
+ closelog();
+ } else
+#endif
+ if (serverLogFD >= 0) {
+ close(serverLogFD);
+ serverLogFD = -1;
+ }
+ UNLOCK_SERVERLOG();
+}