[76] in Release_7.7_team

home help back first fref pref prev next nref lref last post

DECstation syslogging

daemon@ATHENA.MIT.EDU (jweiss@MIT.EDU)
Tue Apr 26 14:55:58 1994

From: jweiss@MIT.EDU
To: release-77@MIT.EDU
Cc: ppt@MIT.EDU, tytso@MIT.EDU, vrt@MIT.EDU, mhbraun@MIT.EDU, jweiss@MIT.EDU
Date: Tue, 26 Apr 94 14:55:43 EDT


There have been requests to make some DECstation syslogging clients
use the 4.3 style syslog, rather than the 4.2 style for the Athena 7.7
release.

Benefits: Syslog messages generated by these clients would contain
information about what type of error occurred (eg. auth, mail, kern,
user1, user2, etc.), rather than always using compat.  No change will
be made the the levels used (eg. debug, info, notice, emerg, etc.).
This will make it easier to find the messages that one cares about,
because the syslogd will be able to distinguish, and log the syslogs,
by type.  (Syslogd already tries to do this, so no modifications to it
would be required.)  This will be especially useful to the syssupport
group who maintain a large number of DECstation servers, including the
dialups, as well as, private cluster managers.

Costs: Small.  One or two ~3 line modification will be required to
each affected program, and an ~3 line modification will be required to
the Imakefile for each program.

Reliability: The 4.3 library routines that I would like to use are in
the Zephyr build tree, and according to probe, have been used on the
production zephyr servers for about a year (modulo 2 lines of changes
for safety).  The changes to the other files are minimal, and should
not cause a problem.

Time: Despite the fact that code cut is this weekend, we believe that
this is still an accomplishable goal, and will probably take less than
one developer-day of work, to create and apply the appropriate
changes.  I will be able to come up with the changes, and vrt has said
that he will be able to apply them.


Implementation Details: 

Ted suggested the following plan, when I was chatting with him and vrt
about this.  The three of us agree that this is a reasonable plan.

Use the syslog.c from zephyr to build a library in /usr/athena/lib,
tentatively called nsyslog.  Place the required syslog.h in
/usr/athena/include and call it nsyslog.h (so we don't conflict with
the shipped syslog.h).  The relevant programs could then be modified
to include nsyslog.h under ultrix, and syslog.h otherwise.
Consequently the Imakefiles will have to be modified to link the
nsyslog library, under ULTRIX.  The only function call that will
change is openlog, which will take one additional argument.  This
call will have to be #ifdef'd around whether we are using the newer
style syslog.  Fortunately, most (all?) of the code in question
already does this.

The only reason to change the code taken from the zephyr build tree,
is too add a safety mechanism.  If there is a mismatch between the
syslog library calls and the syslog.h, then messages will be logged at
the wrong level, and other bad things may happen.  In order to prevent
this Ted suggested making openlog a macro in nsyslog.h, defining it to
be openlog_43 (or something of that sort, and renaming openlog in the
nsyslog library.  This will cause a link-time error, instead of
incorrect behavior.

Relevant programs:

   * /bin/login
   * klogind and login.krb

  ** ftpd
  ** get_message suite
  ** xlogin and xdm
  ** inetd

 *** timed
 *** snmpd
 *** lpr

* considered to be one of the most programs to modify
** it would be relatively useful to modify these
*** If there is time, we can do these, but they are the least important.

NOTE: There are some syslogging programs on the DECstation that we
take directly from the stock Ultrix tree.  Since we do not build these
programs ourselves, they are not being considered for modification.

	Jonathon

home help back first fref pref prev next nref lref last post