1/*
2 * Copyright (c) 1999-2005, 2009-2012
3 *	Todd C. Miller <Todd.Miller@courtesan.com>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef _LOGGING_H
19#define _LOGGING_H
20
21#include <syslog.h>
22#ifdef __STDC__
23# include <stdarg.h>
24#else
25# include <varargs.h>
26#endif
27
28/* Logging types */
29#define SLOG_SYSLOG		0x01
30#define SLOG_FILE		0x02
31#define SLOG_BOTH		0x03
32
33/* Flags for log_error()/log_fatal() */
34#define MSG_ONLY		0x01
35#define USE_ERRNO		0x02
36#define NO_MAIL			0x04
37#define NO_STDERR		0x08
38#define NO_LOG			0x10
39
40/*
41 * Maximum number of characters to log per entry.  The syslogger
42 * will log this much, after that, it truncates the log line.
43 * We need this here to make sure that we continue with another
44 * syslog(3) call if the internal buffer is more than 1023 characters.
45 */
46#ifndef MAXSYSLOGLEN
47# define MAXSYSLOGLEN		960
48#endif
49
50/*
51 * Indentation level for file-based logs when word wrap is enabled.
52 */
53#define LOG_INDENT	"    "
54
55void audit_success		__P((char *[]));
56void audit_failure		__P((char *[], char const * const, ...));
57void log_allowed		__P((int));
58void log_auth_failure		__P((int, int));
59void log_denial			__P((int, int));
60void log_failure		__P((int, int));
61void log_error			__P((int flags, const char *fmt, ...))
62				    __printflike(2, 3);
63void log_fatal			__P((int flags, const char *fmt, ...))
64				    __printflike(2, 3)
65				    __attribute__((__noreturn__));
66void writeln_wrap		__P((FILE *, char *, size_t, size_t));
67
68#endif /* _LOGGING_H */
69