From db970762d90a3adda07874ac597928f5305b0a49 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 22 Apr 2011 07:46:02 -0400 Subject: Initial commit Partial autotools conversion to help out Joe More autotools migration More autotools migration Add platform detection for Linux vs Solaris Move CFG_PATH out of duser.h and put into configure via --with-config-path Forgot to define ifdef for HAVE_CONFIG_H sigh Add configure checks for strchrnul() and strcasestr() and config.h entries Add __NLINUX__ and __NSOLARIS__ platform checks to configure and config.h entries Forgot compat.c for Solaris platforms sigh Fix spelling mistake: comat.c -> compat.c Fixed typo Make strcasestr() and strchrnul() into separate compat files Force everyone to use compat functions not just Solaris Remove libsysfs from buildconf Add libtool support (needed for libdusercompat.a) --- src/log.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/log.c (limited to 'src/log.c') diff --git a/src/log.c b/src/log.c new file mode 100644 index 0000000..c0c1051 --- /dev/null +++ b/src/log.c @@ -0,0 +1,77 @@ +/** +* duser - Manage MajorDomo lists +* Copyright (C) 2011 Joseph Hunkeler +* +* This file is part of duser. +* +* duser is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* duser is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with duser. If not, see . +**/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "duser.h" + +extern char logfile[PATH_MAX]; +//extern char* logfile; + +int logcleanup() +{ + int status = 0; + if((status = access(logfile, W_OK)) == 0) + { + status = unlink(logfile); + } + + return status; +} + +int COM(const char* func, char *format, ...) +{ + struct tm *logtm; + time_t logtime = time(NULL); + char timestr[64]; + char *str = (char*)malloc(sizeof(char) * 256); + char tmpstr[255]; + int n; + + FILE *logfp = NULL; + logfp = fopen(logfile, "a+"); + if(logfp == NULL) + { + fprintf(stderr, "Unable to open %s\n", logfile); + exit(1); + } + + va_list args; + va_start (args, format); + n = vsprintf (str, format, args); + va_end (args); + + logtm = localtime(&logtime); + + snprintf(timestr, sizeof(timestr), "%02d-%02d-%02d %02d:%02d:%02d", logtm->tm_year+1900, logtm->tm_mon+1, logtm->tm_mday, logtm->tm_hour, logtm->tm_min, logtm->tm_sec); + snprintf(tmpstr, sizeof(tmpstr), "%s %d _%s_: %s", timestr, getuid(), func, str); + fprintf(logfp, "%s", tmpstr); + fclose(logfp); + + free(str); + return 0; +} -- cgit