summaryrefslogtreecommitdiff
path: root/usr/src/lib/libldap4/util/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libldap4/util/log.c')
-rw-r--r--usr/src/lib/libldap4/util/log.c168
1 files changed, 0 insertions, 168 deletions
diff --git a/usr/src/lib/libldap4/util/log.c b/usr/src/lib/libldap4/util/log.c
deleted file mode 100644
index 29ea85a644..0000000000
--- a/usr/src/lib/libldap4/util/log.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (c) 1998-1999 by Sun Microsystems, Inc.
- * All rights reserved.
- */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <nl_types.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <string.h>
-
-#include <syslog.h>
-#include <portable.h>
-/* #include <lthread.h> */
-#include <pthread.h>
-#include <thread.h>
-
-#include "log.h"
-
-#define LDAP_DEBUG_ANY 0xffff
-
-static pthread_mutex_t log_mutex;
-static char logfile[PATH_MAX] =
- "/var/opt/SUNWconn/ldap/log/slapd.log";
-static int logsize = 512000;
-static int logtime = 1;
-static FILE *logfd = NULL;
-static int syslogopen = 0;
-pthread_mutex_t systime_mutex;
-nl_catd sundscat;
-static int log_debug = LDAP_DEBUG_STATS;
-
-typedef struct _logctx {
- char *logfile;
- int syslogopen;
- int logsize;
- pthread_mutex_t log_mutex;
- int log_debug;
- int log_syslog;
-
-} LogCtx;
-
-void
-ldaplogconfig(char *logf, int size)
-{
- strcpy(logfile, logf);
- logsize = size * 1024;
-}
-
-void
-ldaplogconfigf(FILE *fd)
-{
- logfd = fd;
- logsize = 0;
-}
-
-void
-ldaploginit(char *name, int facility)
-{
- openlog(name, OPENLOG_OPTIONS, facility);
- syslogopen = 1;
- pthread_mutex_init(&log_mutex, NULL);
-}
-
-void
-ldaploginitlevel(char *name, int facility, int level)
-{
- ldaploginit(name, facility);
- log_debug = level;
-}
-
-LogCtx *
-sundsloginit(char *name, int facility, int debug_level, int syslog_level)
-{
- LogCtx *returnCtx = NULL;
-
- if ((returnCtx = (LogCtx *)malloc(sizeof (LogCtx))) == NULL)
- return (NULL);
- if ((returnCtx->logfile = strdup(name)) == NULL) {
- free(returnCtx);
- return (NULL);
- }
- openlog(returnCtx->logfile, OPENLOG_OPTIONS, facility);
- returnCtx->syslogopen = 1;
- pthread_mutex_init(&(returnCtx->log_mutex), NULL);
- returnCtx->log_debug = debug_level;
- returnCtx->log_syslog = syslog_level;
- return (returnCtx);
-}
-
-static char timestr[128];
-static time_t timelast = 0;
-
-/*VARARGS*/
-void
-ldaplog(int level, char *fmt, ...)
-{
- va_list ap;
- struct stat statbuf = {0};
- char newlog1[PATH_MAX];
- char newlog2[PATH_MAX];
- time_t now;
- int i;
-
- if (!(log_debug & level))
- return;
-
- va_start(ap, fmt);
-
- if (level == LDAP_DEBUG_ANY) {
- /*
- * this message is probably an error message, send it to syslog
- */
- if (syslogopen) {
- vsyslog(LOG_ERR, fmt, ap);
- } /* end if */
- /* and sent it also on stderr */
- vfprintf(stderr, fmt, ap);
- } /* end if */
-
- /*
- * check that the log file is not already too big
- */
- pthread_mutex_lock(&log_mutex);
- if ((logsize > 0) && (stat(logfile, &statbuf) == 0 &&
- statbuf.st_size > logsize)) {
- for (i = 9; i > 1; i--) {
- (void) sprintf(newlog1, "%s.%d", logfile, i-1);
- (void) sprintf(newlog2, "%s.%d", logfile, i);
- (void) rename(newlog1, newlog2);
- } /* end for */
- if (logfd) {
- fclose(logfd);
- logfd = NULL;
- } /* end if */
- (void) rename(logfile, newlog1);
- } /* end if */
- /*
- * send the message into a regular log file
- */
- if (!logfd) {
- logfd = fopen(logfile, "a");
- } /* end if */
- /*
- * finally write the message into the log file
- */
- if (logfd) {
- if (logtime) {
- time(&now);
- if (now-timelast > 60) {
- pthread_mutex_lock(&systime_mutex);
- timelast = now;
- ctime_r(&now, timestr, 128);
- pthread_mutex_unlock(&systime_mutex);
- } /* end if */
- fprintf(logfd, "%.16s : ", timestr);
- } /* end if */
- vfprintf(logfd, fmt, ap);
- fflush(logfd);
- } /* end if */
- pthread_mutex_unlock(&log_mutex);
- va_end(ap);
-}