diff options
author | chuck <chuck@cvs.openbsd.org> | 1996-01-20 00:30:43 +0000 |
---|---|---|
committer | chuck <chuck@cvs.openbsd.org> | 1996-01-20 00:30:43 +0000 |
commit | 5e45894b935feb563bb8d4a5cf1b19b63b3e155a (patch) | |
tree | d4e18129b1b2bb299d3d78a719fd624774d72893 /usr.sbin/ypserv/common/yplog.c | |
parent | 6dc750d8f697518875a5698b5c237b7520b8981a (diff) |
Total re-write of yplog by Chuck Cranor
(made it more printf like)
Diffstat (limited to 'usr.sbin/ypserv/common/yplog.c')
-rw-r--r-- | usr.sbin/ypserv/common/yplog.c | 171 |
1 files changed, 81 insertions, 90 deletions
diff --git a/usr.sbin/ypserv/common/yplog.c b/usr.sbin/ypserv/common/yplog.c index 59ec35becd5..60951f6ae66 100644 --- a/usr.sbin/ypserv/common/yplog.c +++ b/usr.sbin/ypserv/common/yplog.c @@ -1,5 +1,8 @@ +/* $Id: yplog.c,v 1.2 1996/01/20 00:30:42 chuck Exp $ */ + /* - * Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se> + * + * Copyright (c) 1996 Charles D. Cranor * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -10,121 +13,109 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Charles D. Cranor. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef LINT -static char rcsid[] = "$Id: yplog.c,v 1.1 1995/11/01 16:56:20 deraadt Exp $"; -#endif +/* + * yplog.c: replacement yplog routines for + * Mats O Jansson's ypserv program, as added by + * Chuck Cranor. + */ #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> #include <unistd.h> -#include <strings.h> -#include <rpc/rpc.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +#include <sys/types.h> -FILE *yplogfile; +#if __STDC__ +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include "yplog.h" -void -yplog_date(line) - char *line; -{ - char datestr[20]; - time_t t; +static FILE *logfp = NULL; /* the log file */ - if (yplogfile != NULL) { - (void)time(&t); - (void)strftime(datestr,20,"%b %d %T",localtime(&t)); - fprintf(yplogfile,"%s %s\n",datestr,line); - fflush(yplogfile); - } -} +/* + * yplog(): like a printf, but to the log file. does the flush + * and data for you. + */ void -yplog_line(line) - char *line; +#if __STDC__ +yplog(const char *fmt, ...) +#else +yplog(fmt, va_alist) + char *fmt; + va_dcl +#endif { - if (yplogfile != NULL) { - fprintf(yplogfile," %s\n",line); - fflush(yplogfile); - } -} + va_list ap; -void -yplog_str(line) - char *line; -{ - if (yplogfile != NULL) { - fprintf(yplogfile," %s",line); - fflush(yplogfile); - } +#if __STDC__ + va_start(ap, fmt); +#else + va_start(ap); +#endif + vyplog(fmt, ap); + va_end(ap); } -void -yplog_cat(line) - char *line; -{ - if (yplogfile != NULL) { - fprintf(yplogfile,"%s",line); - fflush(yplogfile); - } -} +/* + * vyplog() support routine for yplog() + */ void -yplog_call(transp) - SVCXPRT *transp; +vyplog(fmt, ap) + register const char *fmt; + va_list ap; { - struct sockaddr_in *caller; + time_t t; - if (yplogfile != NULL) { - caller = svc_getcaller(transp); - fprintf(yplogfile," caller: %s %d\n", - inet_ntoa(caller->sin_addr), - ntohs(caller->sin_port)); - fflush(yplogfile); - } + if (!logfp) return; + (void)time(&t); + fprintf(logfp,"%.15s ", ctime(&t) + 4); + vfprintf(logfp, fmt, ap); + fprintf(logfp,"\n"); + fflush(logfp); } +/* + * open log + */ + void -yplog_init(progname) - char *progname; +ypopenlog() { - char file_path[255]; - struct stat finfo; - - sprintf(file_path,"/var/yp/%s.log",progname); - if ((stat(file_path, &finfo) == 0) && - ((finfo.st_mode & S_IFMT) == S_IFREG)) { - yplogfile = fopen(file_path,"a"); - sprintf(file_path,"%s[%d] : started",progname,getpid()); - yplog_date(file_path); - } + logfp = fopen("/var/yp/ypserv.log", "a"); + if (!logfp) return; + yplog("yplog opened"); } +/* + * close log + */ + void -yplog_exit() +ypcloselog() { - if (yplogfile != NULL) { - yplog_date("controlled shutdown"); - fclose(yplogfile); + if (logfp) { + yplog("yplog closed"); + fclose(logfp); + logfp = NULL; } } - |