tree 67a7aeda5a2d98aabcafabe9e936a5711076ad41
parent 2557aed16aa98f90d70a14ad4546742c79af7668
author ajs <ajs> 1101682801 +0000
committer ajs <ajs> 1101682801 +0000

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.
