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. */