GN(8) GN(8) 1993 Sept 7 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 domain. -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. - 1 - Formatted: November 14, 2024 GN(8) GN(8) 1993 Sept 7 -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 documents listed in that cachefile will not be served. See the Security Guide. -L logfile | -S If the -L option is used logging is turned on and the file logfile is used as the file in which to record gn transactions. If the -S option is used then the UNIX system logging daemon, syslogd, 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 options 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 config.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. This means that to use it you need to enter it in two files - /etc/services and /etc/inetd.conf. The entries 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'' 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. - 2 - Formatted: November 14, 2024 GN(8) GN(8) 1993 Sept 7 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. 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 University (john@math.nwu.edu). Contributions have been made by a number of people including Earle Ake, Henry Cejtin, Paul DuBois, Jishnu Mukerji, Marko Nordberg, Jim Rees, Stephen Trier, Ed Vielmetti, and Rico Tudor. - 3 - Formatted: November 14, 2024