2004-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* log.h: Remove several unused fields from struct zlog. Add comments
for other fields, and add one new field syslog_options that is
used in the new syslog_sigsafe implementation.
* log.c: (syslog_sigsafe) New function to send syslog messages in
an async-signal safe way that can be used inside a signal handler.
(syslog_connect) New function to connect to syslog daemon inside a
signal handler. This function supports only systems where /dev/log
is a unix datagram socket (e.g. not Solaris).
(zlog_signal) Call syslog_sigsafe if syslog logging is enabled.
(zlog_backtrace_sigsafe) Call syslog_sigsafe if syslog logging is
enabled.
(openzlog) Save syslog_options for use in syslog_sigsafe.
(num_append) Fix bug: handle 0 properly.
(hex_append) New function to print a u_long in hex format.
diff --git a/lib/log.h b/lib/log.h
index 17b24cd..54cc2a6 100644
--- a/lib/log.h
+++ b/lib/log.h
@@ -46,18 +46,16 @@
struct zlog
{
- const char *ident;
+ const char *ident; /* daemon name (first arg to openlog) */
zlog_proto_t protocol;
- int flags;
+ int flags; /* mask indicating which destinations to log to */
FILE *fp;
char *filename;
- int syslog;
- int stat;
- int connected;
- int maskpri; /* as per syslog setlogmask */
- int priority; /* as per syslog priority */
+ int maskpri; /* discard messages with priority > maskpri */
int facility; /* as per syslog facility */
- int record_priority;
+ int record_priority; /* should messages logged through stdio include the
+ priority of the message? */
+ int syslog_options; /* 2nd arg to openlog */
};
/* Message structure. */