/*
* Copyright 1988 by Rayan S. Zachariassen, all rights reserved.
* This will be free software, but only when it is finished.
*/
/*
* A lot of changes all around over the years by Matti Aarnio
* <mea@nic.funet.fi>, copyright 1992-2002
*/
#include "hostenv.h"
#include <stdio.h>
#include <sys/param.h>
#include "zsyslog.h"
extern int errno;
extern const char *progname;
#ifdef HAVE_VPRINTF
#ifdef HAVE_STDARG_H
# include <stdarg.h>
#else
# include <varargs.h>
#endif
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#include "libc.h"
#include "ta.h"
#ifdef HAVE_STDARG_H
#ifdef __STDC__
void
warning(const char *fmt, ...)
#else /* Not ANSI-C */
void
warning(fmt)
const char *fmt;
#endif
#else
/*VARARGS*/
void
warning(fmt, va_alist) /* ("fmtstr", remotemsg) */
const char *fmt;
va_dcl
#endif
{
va_list ap;
#ifdef HAVE_STDARG_H
va_start(ap,fmt);
#else
va_start(ap);
#endif
fd_blockingmode(FILENO(stderr));
if (progname != NULL)
fprintf(stderr, "# %s:%d: ", progname, (int)getpid());
vfprintf(stderr, fmt, ap);
fprintf(stderr, "\n");
fflush(stderr);
va_end(ap);
}
#else /* No vfprintf() */
/*VARARGS*/
void
warning(fmt, arg, arg2, arg3, arg4)
char *fmt, *arg, *arg2, *arg3, *arg4;
{
static int isopen = 0;
int e = errno; /* Save it over the openlog() .. */
fd_blockingmode(FILENO(stderr));
if (progname != NULL)
(void) fprintf(stderr, "# %s:%d: ", progname, getpid());
fprintf(stderr, fmt, arg, arg2, arg3, arg4);
fprintf(stderr, "\n");
fflush(stderr);
#if 0 /* Actually DON'T syslog this stuff! */
if (!isopen) {
zopenlog(progname, 0, LOG_MAIL);
}
errno = e;
zsyslog((LOG_ERR, fmt, arg, arg2, arg3, arg4));
#endif
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1