FreeBSD Manual Pages
GN(8) System Manager's Manual GN(8) NAME gn - A server for the internet gopher protocol and Hyper Text Transfer Protocol SYNOPSIS gn [-a | -A] [-L logfile | -S] [-k uid# | -K gid#] [-c cache] [-t http_root_title] [rootdir] DESCRIPTION GN is a server for the internet gopher protocol and HTTP (gopher is a registered trademark of the University of Minnesota). GN Options The following optional arguments are accepted by gn: rootdir The complete path name of the directory which is the root of the hierarchy of data files. A default value is set in the source file config.h. The following options are accepted by gn: -a Limit access to the server to those clients with an IP address, subnet address, or host domain name listed in the file .access in the root data directory. The format of the .access file is one address per line, each line consisting of an IP address like 129.111.222.123, a subnet address like 129.111.222 or 129.111 or a domain name that can include wildcards like nwu.edu or *.cc.nwu.edu. In case a subnet address is listed, any client with an IP address beginning with that subnet address will be allowed access. If a simple host name is used like math.nwu.edu then only the machine math.nwu.edu is allowed access. If a wildcard such as *.math.nwu.edu then only machines in the math.nwu.edu domain are allowed access but not the cc.nwu.edu machine if one exists. Hosts or domains can be disallowed by prefixing their name with '!'. Thus a line containing !*.nwu.edu would prevent access from any host in the nwu.edu do- main. -A This option is similar to the -a option except access is allowed on a per directory basis. Each client request is processed by first looking for a .access file in the directory containing the requested item and comparing the IP address of the client with the addresses in this file. If no .access file exists in this directory, one is sought in the parent directory and then if necessary the parent of the parent, etc., up to the root data directory. If no .access file is found by this process access is allowed to all clients provided the item requested exists in a .cache file. Menu items corresponding to directories for which a host does not have access are not shown to that host. -c cachefile Use cachefile, instead of the default, .cache, as the name of the file in each directory of the data hierarchy containing the cached list of menu items, their paths, hosts and ports. No file is sent by gn to a client unless it is listed in one of these cache files or is itself one of these cache files. These files are produced by the companion program mkcache or .cache files produced by the University of Minnesota gopherd server can be used. -k user_id | -K group_id With these options the server will check the user or group id of a cachefile and if it is not the same as that specified the doc- uments listed in that cachefile will not be served. See the Se- curity Guide. -L logfile | -S If the -L option is used logging is turned on and the file log- file is used as the file in which to record gn transactions. If the -S option is used then the UNIX system logging daemon, sys- logd, will be used. You may need to edit your /etc/syslog.conf file for this to work (see your local manual). The facility used is DAEMON, and the level is INFO. If neither of these op- tions are used, no logging will take place. -t http_root_title Use http_root_title as the title and heading of the root menu when doing an HTTP transaction instead of the value set in con- fig.h via a #define. If the empty string "" is used as the value then no title or heading will be used and and these can be set in the menu file of the root menu. This option only affects HTTP transactions. There is no mechanism in the gopher protocol for sending a root menu title. GN only runs under inetd. To run a stand alone server you use the pro- gram sgn which comes witht the GN package. To use gn with inetd you need to edit two files - /etc/services and /etc/inetd.conf. The en- tries in these files look something like this: gn 70/tcp for /etc/services and gn stream tcp nowait nobody /path/gn gn -L /path/gn.log for /etc/inetd.conf. See the man page inetd.conf(5). SETTING UP A ``SEARCH ALL MENUS'' ITEM A builtin feature of gn is the ability to have a menu item which when selected prompts the user for a search term and returns a ``virtual menu'' of all menu items which contain that term. In fact such an item can occur at any level and return either all matches from all menus on that server or all matches at or below some chosen level. Here's how to set it up. Create an entry like this in the menu file where you want the search item to occur: Name=Search all menus on this server Type=7 Path=7c/.cache Host=your.gn.host.edu Port=70 (If you want the search to cover only those items in directory /foo/bar, then the path line should be Path=7c/foo/bar/.cache) Then run mkcache to translate the new menu file to a .cache file and you are done. When you change any of the menus in your server and remake the .cache files gn will automatically reflect this in menu searches. There is a maximum depth which gn will search into the gn hierarchy. Its value can be changed by editing the config.h file and re-compiling. 4th Berkeley Distribution 1993 Sept 7 GN(8) ------------------------------------------------------------------------------- GN(8) System Manager's Manual GN(8) FORMAT OF A CACHE FILE The security architecture of the gn server employs a cache file in each directory to indicate which data files may served to clients. The file also contains the information for generating replies to menu requests. Typically the cache file is named .cache and is created by the mkcache program from the more readable menu file. The structure of the current gn cache file is an evolution of the .cache file used by the University of Minnesota gopherd program. The cache file contains of a sequence of menu entries consisting of a pri- mary line with an optional secondary line. A third type of line sup- ports enhanced HTML in menus for HTTP clients. Primary line The primary line for each menu entry contains the five fields used in the Gopher protocol (RFC-1436). The first field is a single character and abuts the second field; the remaining fields are separated by TAB (0x09) characters: X Menu title of item TAB selector TAB host TAB port X A single character Gopher type designator, e.g. 0 for text, 1 for menus, 9 for binary, etc. This field corresponds to the menu Type= directive. Several of the unused Gopher type charac- ters are used to indicate the other line types: TAB indicates a secondary line. h is likely an http: or hname: line o is likely an owner: line. Menu title of item This is the title which will appear on the client menu and cor- responds to the Name= menu line. selector The selector string used to reference this entry and corresponds to the menu Path= data. host The fully qualified domain name of the host with the document. This corresponds to the Host= menu line. port TCP port number on host for connecting to the document server. >From the Port= menu line. Secondary line Following the primary line is an optional secondary line giving addi- tional information about the menu entry. Each secondary line begins with a TAB and contains four TAB separated fields: TAB content_type TAB suffix TAB encoding TAB attribute content_type For a local document, this is the MIME content type, e.g. text/plain, image/gif, etc. and is used in the HTTP Con- tent_type: header. Links to remote documents use this field to indicate the type of server with the document: gn_link (another gn server), gopher_link (ordinary Gopher server), and url_link (HTTP server). suffix A lower-case copy of the one to four character file name exten- sion. The value txt is used to indicate that a file with a html extension is available for HTTP clients. encoding empty or one of x-compress or x-gzip to indicate that the file in question has been compressed with the UNIX compress utility or with the GNU compression utility gzip. This value is used in the HTTP Content-encoding: header. attribute The gn server allows each entry to be tagged with one of the following attributes. gnlink Denotes that the remote document is on a gn server and capable of handling HTTP requests as well as gopher re- quests. The reply to an HTTP client will contain an http: URL. gopheronly Show this link to gopher clients but hide it from WWW clients. httponly Show this link to HTTP clients and hide it from gopher clients. invisible For items never to be displayed on a menu, but to be ac- cessible to requests, for example an inline graphic. nosearch item will be displayed for clients but its title will not be used when searches of menu items are done. urllink entry is only for HTTP client, but the primary line se- lector field contains an entire URL. HTML support line To provide additional HTML support to HTTP clients the cache file may contain lines starting one of these three colon terminated keywords: hname: The remainder of the line is treated as a primary line where the selector field contains HTML markup. http: The rest of the line is HTML to be returned verbatim to HTTP clients. These line are not sent to Gopher clients. owner: specifies the URL for the maintainer of the menu to be returned to HTTP clients as HTML link tag. UNRESTRICTIONS GN is free; anyone may redistribute copies to anyone under the terms stated in the Free Software Foundation's General Public License, a copy of which accompanies the gn software package. The author encourages you to improve and extend gn. AUTHOR GN was written by John Franks, Dept. of Mathematics, Northwestern Uni- versity (john@math.nwu.edu). Contributions have been made by a number of people. They include Earle Ake, Jurgen Botz Henry Cejtin, Mike Crowley, Paul DuBois, Stephen Hebditch, Albert Lunde, Jishnu Mukerji, Marko Nordberg, Jim Rees, Craig Milo Rogers, Chip Rosenthal, Stephen Trier, Ed Vielmetti, and Rico Tudor. GN(8)
NAME | SYNOPSIS | DESCRIPTION | SETTING UP A ``SEARCH ALL MENUS'' ITEM | FORMAT OF A CACHE FILE | UNRESTRICTIONS | AUTHOR
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gn&manpath=Red+Hat+4.2>