Extensions to Finger

The finger system has two components: a server daemon and a client application. The server daemon runs on all computer systems which can be "finger'ed" (currently limited to the UNIX operating system or a close derivative.) The client application is the one with which the user interacts. Metafinger is comprised of several finger clients. Although they will work in conjunction with all finger servers, a server which is designed for use with Metafinger was also defined.

Since the GNU finger server already supported the concept of a site, it was chosen for use as the server. A few minor changes (listed below) were required, but it is essentially unmodified.

The client, on the other hand, was completely redesigned. The functionality of the traditional finger client, with one major modification, was moved into a core library, shared by a different client application for each user interface. These client applications - Metafinger for UNIX command line interface and HTTP-Metafinger for the WWW interface - also share filtering and presentation modules.


System Overview

System Overview

Client Changes

There was one major change to the finger client required before the filtering and presentation sections (which provide the features described previously) could be implemented. Finger clients traditionally perform no operations on the data returned by a finger server. They merely print each character received on the output device being used. Metafinger, in order to filter the data, must interpret the finger data being returned by the server.

Although I considered fully automatic parsing of the finger data, I settled on building knowledge about a limited number of finger server types into the client. It uses the header line to identify the server supplying the data, then parses subsequent lines based on its knowledge of that server's output format. At this point, "teaching" Metafinger about a new server requires a recompilation.

If several different servers are specified in the list of users provided at the user interface, the data returned, after being interpreted and filtered, is merged into a single database before being passed to the presentation section for display.

Server Changes

The GNU finger server (v1.37) was used, due to its handling of multiple machines as a site. Aside from normal site configurations, it was modified to remove some of it's "advanced" features :

Removal of the "what" field

The "what" field, which indicated the application currently being run by a user, was removed for two reasons. The first was privacy concerns. It is unclear that all users want this information available freely to anyone on the Net. The second reason is the information output by the server for each user login is limited to 80 characters. Other local research required that the login time (normally not present in the GNU finger server output) be reinstated, and I needed the column space.

Removal of server filtering

In an attempt to reduce the volume of information provided by a site with even a small number of computers, the GNU finger server only reported a single user login per machine. Again, this caused problems as some local users relied on obtaining all the information. Instead, it is now performed by the finger client based on user preference.


Prev..Meta Levels......................................... Filtering & Presentation ..Next
Meta Finger Top Level

wad@media.mit.edu