NWG/RFC# 742 KLH 30-Dec-77 08:31 42758 Network Working Group K. Harrenstien Request for Comments: 742 SRI-KL NIC: 42758 30 December 1977
This note describes the Name/Finger protocol. This is a simple protocol which provides an interface to the Name and Finger programs at several network sites. These programs return a friendly, human-oriented status report on either the system at the moment or a particular person in depth. Currently only the SAIL (SU-AI), SRI (SRI-(KA/KL)), and ITS (MIT-(AI/ML/MC/DMS)) sites support this protocol, but there are other systems with similar programs that could easily be made servers; there is no required format and the protocol consists mostly of specifying a single "command line".
ICP to socket 117 (octal, 79. decimal) and establish two 8-bit connections.
Send a single "command line", ending with <CRLF>.
Receive information which will vary depending on the above line and the particular system. The server closes its connections as soon as this output is finished.
Systems may differ in their interpretations of this line. However, the basic scheme is straightforward: if the line is null (i.e. just a <CRLF> is sent) then the server should return a "default" report which lists all people using the system at that moment. If on the other hand a user name is specified (e.g. FOO<CRLF>) then the response should concern only that particular user, whether logged in or not.
Both ITS and SAIL sites allow several names to be included on the
line, separated by commas; but the syntax for some servers can be
slightly more elaborate. For example, if "/W" (called the "Whois
switch") also appears on the line given to an ITS server, much fuller
descriptions are returned. The complete documentation may be found
at any time in the files ".INFO.;NAME ORDER" on MIT-AI,
"FINGER.LES[UP,DOC]" on SU-AI, and "<DOCUMENTATION>FINGER.DOC" on
SRI-KL, all freely accessible by FTP (with the exception of SRI-KL, where TOPS-20 requires the "anonymous" login convention).
Allowable "names" in the command line should of course include "user names" or "login names" as defined by the system, but it is also reasonable to understand last names or even full names as well. If a name is ambiguous, all possible derivations should be returned in some fashion; SAIL will simply list the possible names and no more, whereas an ITS server will furnish the full standard information for each possibility.
This is a request for a list of all online users, much like a TOPS-10 or TENEX "systat". To fulfill the basic intent of the Name/Finger programs, the returned list should include at least the full names of each user and the physical locations of their terminals insofar as they can be determined. Including the job name and idle time (number of minutes since last typein, or since last job activity) is also reasonable and useful. The appendix has examples which demonstrate how this information can be formatted.
For in-depth status of a specified user, there are two main cases. If the user is logged in, a line or two is returned in the same format as that for the "default" listing, but showing only that user. If not logged in, things become more interesting. Furnishing the full name and time of last logout is the expected thing to do, but there is also a "plan" feature, wherein a user may leave a short message that will be included in the response to such requests. This is easily implemented by (for example) having the program look for a specially named text file on the user's directory or some common area. See the examples for typical "plans".
Anyone wishing to implement such a server is encouraged to get in touch with the maintainers of NAME by sending a message to BUG-NAME @ MIT-AI; apart from offering advice and help, a list of all sites with such servers is kept there. It is also suggested that any existing programs performing similar functions locally (i.e. not as net servers) be extended to allow specification of other sites, or names at other sites. For example, on ITS systems one can say ":NAME<cr>" for a local default listing, or ":NAME @SAIL<cr>" for SAIL's default listing, or ":NAME Foo@MC<cr>" to ask MIT-MC about Foo's status, etc.
It should be noted that connecting directly to the server from a TIP or an equally narrow-minded TELNET-protocol user program can result in meaningless attempts at option negotiation being sent to the server, which will foul up the command line interpretation unless the server knows enough to filter out IAC's and perhaps even respond negatively (IAC WON'T) to all option commands received. This is a convenience but is not at all required, since normally the user side is just an extended NAME/FINGER type program.
The FINGER program at SAIL, written by Les Earnest, was the inspiration for the NAME program on ITS. Earl Killian at MIT and Brian Harvey at SAIL were jointly responsible for implementing the protocol just described, and Greg Hinchliffe has recently brought up a similar server for SRI-KA and SRI-KL.
Three examples with a null command line:
Person Job Jobnam Idle Terminal DAN Dan Sleator 46 MACLSP DM-3 150/1200 modem 415 49* DEK Don Knuth 3 E 3. tv-55 205 Library 20 PI 2 TV-55 205 Library ES Gene Salamin 44 SD MC TV-40 223a Farmwald JJ Jerrold Ginsparg 11 TELNET DM-0 150/1200 modem 415 49* JMC John McCarthy 1 FINGER . detached 12 E 2. IML-15 McCarthy's house KRD Randy Davis 42 AID 7 TV-52 203 Allen LES Les Earnest 23 TEMPS 2. DM-1 150/1200 modem 415 49* ME Martin Frost 17 E 3 tv-46 220 Filman, Frost 31 E TV-46 220 Filman, Frost PAM Paul Martin 9 E TV-106 251C King, Levy, Martin ROD Rod Brooks 37 MACLSP 3 TV-117 250C RWG Bill Gosper 30 SD MC TV-34 230e Robinson TV-67 213 Kant, McCune, Steinbe* RWW Richard Weyhrauch 39 E TV-42 214 Weyhrauch SYS system files 6 FINGER PTY122 job 5 Arpanet site AI*
27 EXEC 7:11 232 (SRI-KL) TORRES Israel Torres 64 BSYS 0.0 76 K2079 TI by tape drives 68 EXEC 1:15 104 K2029 Operators' Office
Examples with names specified:
Person Job Jobnam Idle Line Room Location JBR Jeff Rubin 16 COPY 27. TV-43 222 Rubin TV-104 233 hand-eye table
Person Last logout BH Brian Harvey 22:49 on 14 Dec 1977. Plan: ^O08-Oct-77 2156 BH ^Y12257 (1-Jul-78)