summaryrefslogtreecommitdiff
path: root/log.h
diff options
context:
space:
mode:
Diffstat (limited to 'log.h')
-rw-r--r--log.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/log.h b/log.h
new file mode 100644
index 000000000..4b82ee3e7
--- /dev/null
+++ b/log.h
@@ -0,0 +1,76 @@
1/*
2 * Author: Tatu Ylonen <ylo@cs.hut.fi>
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved
5 *
6 * As far as I am concerned, the code I have written for this software
7 * can be used freely for any purpose. Any derived versions of this
8 * software must be clearly marked as such, and if the derived work is
9 * incompatible with the protocol description in the RFC file, it must be
10 * called by a name other than "ssh" or "Secure Shell".
11 */
12
13#ifndef SSH_LOG_H
14#define SSH_LOG_H
15
16/* Supported syslog facilities and levels. */
17typedef enum {
18 SYSLOG_FACILITY_DAEMON,
19 SYSLOG_FACILITY_USER,
20 SYSLOG_FACILITY_AUTH,
21#ifdef LOG_AUTHPRIV
22 SYSLOG_FACILITY_AUTHPRIV,
23#endif
24 SYSLOG_FACILITY_LOCAL0,
25 SYSLOG_FACILITY_LOCAL1,
26 SYSLOG_FACILITY_LOCAL2,
27 SYSLOG_FACILITY_LOCAL3,
28 SYSLOG_FACILITY_LOCAL4,
29 SYSLOG_FACILITY_LOCAL5,
30 SYSLOG_FACILITY_LOCAL6,
31 SYSLOG_FACILITY_LOCAL7
32} SyslogFacility;
33
34typedef enum {
35 SYSLOG_LEVEL_QUIET,
36 SYSLOG_LEVEL_FATAL,
37 SYSLOG_LEVEL_ERROR,
38 SYSLOG_LEVEL_INFO,
39 SYSLOG_LEVEL_VERBOSE,
40 SYSLOG_LEVEL_DEBUG1,
41 SYSLOG_LEVEL_DEBUG2,
42 SYSLOG_LEVEL_DEBUG3
43} LogLevel;
44/* Initializes logging. */
45void log_init(char *av0, LogLevel level, SyslogFacility facility, int on_stderr);
46
47/* Logging implementation, depending on server or client */
48void do_log(LogLevel level, const char *fmt, va_list args);
49
50/* name to facility/level */
51SyslogFacility log_facility_number(char *name);
52LogLevel log_level_number(char *name);
53
54/* Output a message to syslog or stderr */
55void fatal(const char *fmt,...) __attribute__((format(printf, 1, 2)));
56void error(const char *fmt,...) __attribute__((format(printf, 1, 2)));
57void log(const char *fmt,...) __attribute__((format(printf, 1, 2)));
58void verbose(const char *fmt,...) __attribute__((format(printf, 1, 2)));
59void debug(const char *fmt,...) __attribute__((format(printf, 1, 2)));
60void debug2(const char *fmt,...) __attribute__((format(printf, 1, 2)));
61void debug3(const char *fmt,...) __attribute__((format(printf, 1, 2)));
62
63/* same as fatal() but w/o logging */
64void fatal_cleanup(void);
65
66/*
67 * Registers a cleanup function to be called by fatal()/fatal_cleanup()
68 * before exiting. It is permissible to call fatal_remove_cleanup for the
69 * function itself from the function.
70 */
71void fatal_add_cleanup(void (*proc) (void *context), void *context);
72
73/* Removes a cleanup function to be called at fatal(). */
74void fatal_remove_cleanup(void (*proc) (void *context), void *context);
75
76#endif