The Penn State Finger package contains a Finger client and server.
The Finger server process provides several services, including Finger,
an SNTP client (Simple Network Time Protocol), and several of the
trivial services.

The whole package is written in VAX MACRO and runs on either VAX or Alpha.

The Finger server is a permanent process, allowing quick response to
network connections.  Local Finger provides better performance then
DECUS Finger.

The Finger server is running on ECL.PSU.EDU, feel free to try it (if
you currently lack a client, telnet to port 79 and hit return).

The only optional VMS software required is DECnet and/or UCX.
Multinet with UCX emulation may also be used.

FINGER CLIENT
=============
The Finger client supports DECnet and UCX TCP/IP.  It requires a local
server to finger the local node (it is not itself a Finger program).

Command is:

	FINGER username@host

Any qualifiers are passed to the server, they may appear anywhere
in the line.

If @host is omitted, FINGER defaults to 0 (your own host) or to
the value of the FINGER_SERVER logical name.  For a memory starved
workstation cluster, you might want to run the Finger server only on
one node and define FINGER_SERVER on all satellites to point to this node.

FINGER first tries DECnet (unless the name obviously isn't a DECnet
node name), then it tries TCP.  You may suffix the name with .DECNET
to force DECnet only.  Use the fully qualified domain name to force TCP.

DECnet Finger is compatible with the DECUS DECnet Finger object.

Command arguments may be quoted to preserve case, otherwise the entire
line is converted to lowercase.


FINGER SERVER
=============
The Finger server is a single, multi-threaded, detached process.
The server offers fast response because the process is always present.
It has been tested with DECnet, UCX (version 1.3 and 2.0), and Multinet.
The server requires privileges, the client does not.

The following services are provided (any may be disabled through
conditional assembly).

	o  TCP/UDP/DECnet FINGER (RFC 1288)
	   The Finger server is substantially compatible with Rich
	   Garland's Finger (DECUS Finger).  The DECnet server will
	   directly replace the DECUS Finger object.

	   All Finger commands are logged to SYS$MANAGER:FINGER.LOG.

	o  TCP/UDP Echo protocol (RFC 862)

	o  TCP/UDP Discard protocol (RFC 863)

	o  TCP/UDP Daytime protocol (RFC 867)

	o  TCP/UDP CharGen protocol (RFC 864)

	o  TCP/UDP Internet Message Send Protocol (RFC 1159)
	   This is the A protocol.  The newer, B protocol
	   is not yet supported.  It has been tested with
	   the ISEND client from Hebrew University (dated
	   April 1991).

	   Messages are broadcast clusterwide to the requested
	   username (terminal name is ignored).

	o  SNTP client (Simple Network Time Protocol) (RFC 1361)
	   Given a suitable (close and reliable) NTP server, this
	   client will periodically poll the server and speed up
	   or slow down the local system time to match the server.

	   All time changes are logged to SYS$MANAGER:SETTIME.LOG.

DECUS FINGER DIFFERENCES
========================
This is a list of things I can think of which differ.

	/HELP to the server is the only documentation.
	This is a munged copy of the DECUS Finger help file.
	I haven't given documentation any serious consideration yet.

	This is a clusterwide finger (/CLUSTER is default).

	New mail message headers are never listed (I haven't yet figured
	out how to match addresses so it only displays messages from the
	person doing the Finger).

	There is no Finger database.  Names are read from the SYSUAF
	owner field.  The entire SYSUAF is read at startup, and updated
	as needed for new accounts.  There is not presently an easy way
	to disable printing the owner name.

	Added fields for account and nodename.

	No support for /SYSTEM, /IDLETIME, /TTTYPE, or /SWAPPED.

	/SORT only supports account, CPU time, Login time, and Username
	(Username is the default).

	Differs a bit in what an interactive process is.

	Only supports one filename for finger plan (default FINGER.PLN).
	Also prints a project line (FINGER.PROJECT).

	The format of the process listing (which fields can be displayed,
	which columns, and how wide the fields are) can be easily configured
	at assembly time.

	No support for Jnet, or TCP other then UCX/Multinet, at this time.

	The server will not forward Finger requests.  Commands like
	Finger @watsun@cunixc are not valid.

INSTALLATION
============
Two executables are generated, a Finger client and a Finger server.

To install:

1) Place the files in a (preferably empty) directory, into which you
   have SET DEFAULT.

2) If you will be using the Finger server, edit CONFIG.MAR and select
   services appropriate for your site.  By default, all services are
   enabled except SNTP.  To disable a service, place a ; before the
   *_ON=1 line (where * is the service).

3) Compile and link:

	$ @BUILD

   This will require about 12 minutes on an Alpha DEC 3000 model 400.
   About 15 minutes on a VAX 11/785.

   BUILD will create FINGER.EXE (client) and FINGER-DAE.EXE (server).
   Put these in an appropriate place.  There is no reason to keep
   the .OBJ files.

4) If you will be using the server, update FINGER-DAE.COM for your site.
   Put it in an appropriate place.

   Start the Finger daemon (now, and at system startup) by executing
   this file (@FINGER-DAE.COM).

   The server log files (sys$manager:finger.log and settime.log) will
   have new versions automatically created each day.  You should set
   a version limit on these files.  The files are kept open, so you
   will need to stop the server to set the version limit.  A side note,
   commands are flushed out to disk after no more than a minute.

5) Define a FINGER command:

	FINGER:==$device:[directory]FINGER

CREDITS
=======
This Finger package may be freely distributed (see copyright.txt).
Comments/suggestions are welcome.  I will attempt to include any
modifications I receive.  I plan to make substantial changes to
Finger in the future (time permitting).


			Bryan Jensen
			System Manager
			Engineering Computer Lab
			Penn State University
			bjj@ecl.psu.edu
			bjj@psuecl.bitnet
