The gophfilt program is a oneshot command line driven version of a gopher client, suitable for use in
shell- or awk-scripts.
The Internet Gopher is a distributed document delivery service. It allows a neophyte user to access
various types of data residing on multiple hosts in a seamless fashion. This is accomplished by
presenting the user a hierarchical arrangement of documents and by using a client-server communications
model. The Internet Gopher Server accepts simple queries, and responds by sending the client a document.
Gophfilt can operate in either of two modes. The first one is in the spirit of unix filters, in that it
accepts requests on stdin and writes results to stdout. The request is in the form of a tab-delimited
.cache item. For example:
1Master Gopher at UMN 1/ gopher.tc.umn.edu 70
(Or in string notation)
"1Master Gopher at UMN\t1/\tgopher.tc.umn.edu\t70\n"
This example would result in the retrieval of the root directory from the Master Gopher.
Gophfilt's other mode permits the construction of a gopher request from arguments provided on the command
line. In this "manual" mode, at least the path and type items must be provided. The default host and
port are taken from the file conf.h at module build time.
-p specifies the path to the requested data. From our "filter" example above, the field "1/" is the
path.
-t specifies the type of the requested data. From our example above, the leading "1" character is the
type (directory, in this case).
-h specifies the name of the host where the server is to be found. The default host (CLIENT1_HOST from
file conf.h) is used if not provided.
-s specifies the service (port) that the server is monitoring. The default port (CLIENT1_PORT from file
conf.h) is used if not provided.
-i specifies a search item. This field immediately follows the path field in the transmitted request.
-T specifies a receiver timeout in seconds. This is the maximum time that gophfilt will wait for more
data. If the "timeout" return value is noticed by the calling program, any data received to that point
should be considered suspect.
To recreate using manual operation the request from our example, one would execute the following command.
gophfilt -t 1 -p 1/ -h gopher.tc.umn.edu -s 70