iThanks to Jeff W for the new manpage! - geomyidae - A small C-based gopherd. Err bitreich.org 70 hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70 1Log /scm/geomyidae/log.gph bitreich.org 70 1Files /scm/geomyidae/files.gph bitreich.org 70 1Refs /scm/geomyidae/refs.gph bitreich.org 70 1Tags /scm/geomyidae/tag bitreich.org 70 1README /scm/geomyidae/file/README.gph bitreich.org 70 1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit a59102fbee661d642dceda1cf561f036b54ea65e /scm/geomyidae/commit/a59102fbee661d642dceda1cf561f036b54ea65e.gph bitreich.org 70 1parent bb858e05c4c1e15bd54b5bcb37ebac0f9356af47 /scm/geomyidae/commit/bb858e05c4c1e15bd54b5bcb37ebac0f9356af47.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Sun, 27 Mar 2011 22:24:48 +0200 Err bitreich.org 70 i Err bitreich.org 70 iThanks to Jeff W for the new manpage! Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M geomyidae.8 | 881 +++++++++++++++++-------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 474 insertions(+), 407 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/geomyidae.8 b/geomyidae.8 /scm/geomyidae/file/geomyidae.8.gph bitreich.org 70 i@@ -1,407 +1,474 @@ Err bitreich.org 70 i-.\" geomyidae.8 handcrafted in GNU groff -mdoc using nvi Err bitreich.org 70 i-.\" Err bitreich.org 70 i-.Dd March 9, 2008 Err bitreich.org 70 i-.Dt GEOMYIDAE 8 Err bitreich.org 70 i-.Os Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh NAME Err bitreich.org 70 i-.Nm geomyidae Err bitreich.org 70 i-.Nd a gopher daemon for Linux/BSD Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh SYNOPSIS Err bitreich.org 70 i-.Nm Err bitreich.org 70 i-.Bk -words Err bitreich.org 70 i-.Op Fl d Err bitreich.org 70 i-.Op Fl l Ar logfile Err bitreich.org 70 i-.Op Fl v Ar loglevel Err bitreich.org 70 i-.Op Fl b Ar base Err bitreich.org 70 i-.Op Fl p Ar port Err bitreich.org 70 i-.Op Fl o Ar sport Err bitreich.org 70 i-.Op Fl u Ar user Err bitreich.org 70 i-.Op Fl g Ar group Err bitreich.org 70 i-.Op Fl h Ar host Err bitreich.org 70 i-.Op Fl i Ar IP Err bitreich.org 70 i-.Ek Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh DESCRIPTION Err bitreich.org 70 i-.Nm Err bitreich.org 70 i-is a daemon for serving the protocol specified in Err bitreich.org 70 i-.Em RFC 1436 Err bitreich.org 70 i-(Gopher). Under 1000 lines of C by design, it is lightweight yet supports Err bitreich.org 70 i-dynamic content, automatic file/directory indexing, logging and privilege Err bitreich.org 70 i-separation. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh IMPLEMENTATION Err bitreich.org 70 i-Installation is straightforward: grab the zipped tar file, expand it in Err bitreich.org 70 i-an appropriate temp directory, change to the Err bitreich.org 70 i-.Qq "../geomyidae-x.xx" Err bitreich.org 70 i-directory, tweak the Makefile if desired (installs in Err bitreich.org 70 i-.Qq "/usr/bin" Err bitreich.org 70 i-by default), then run the Err bitreich.org 70 i-.Sq "make ; make install" Err bitreich.org 70 i-commands. The resulting executable should be run by root. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Ss Installation example: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bd -literal Err bitreich.org 70 i- % wget http://www.r-36.net/src/geomyidae/geomyidae-current.tgz; Err bitreich.org 70 i- % tar -xzvf geomyidae-*.tgz; Err bitreich.org 70 i- % cd geomyidae-*; Err bitreich.org 70 i- % make; sudo make install; Err bitreich.org 70 i- % sudo mkdir -p /var/gopher; Err bitreich.org 70 i- % sudo cp index.gph /var/gopher; Err bitreich.org 70 i- % sudo geomyidae -l /var/log/geomyidae.log -b /var/gopher -p 70; Err bitreich.org 70 i- % tail -f /var/log/geomyidae.log; Err bitreich.org 70 i- # Err bitreich.org 70 i- # Use whatever gopher client you like to gopher to Err bitreich.org 70 i- # gopher://localhost Err bitreich.org 70 i- # Err bitreich.org 70 i- # Have fun! Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-. Err bitreich.org 70 i-.Ss Running Err bitreich.org 70 i-Geomyidae should normally be started by root. Though, it can be started Err bitreich.org 70 i-by a regular user provided that the base directory and its contents are owned Err bitreich.org 70 i-by the same user. Geomyidae will only serve content within the base directory Err bitreich.org 70 i-tree and will drop privileges to the Err bitreich.org 70 i-.Fl u Ar user Err bitreich.org 70 i-and Err bitreich.org 70 i-.Fl g Ar group Err bitreich.org 70 i-values if set. See Err bitreich.org 70 i-.Ic OPTIONS Err bitreich.org 70 i-below for specifics. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh OPTIONS Err bitreich.org 70 i-geomyidae options and default settings: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bl -tag -width ".Fl test Ao Ar string Ac" Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl d Err bitreich.org 70 i-Don't fork into background. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl l Ar logfile Err bitreich.org 70 i-Specify the file where the log output will be written (default: no default). Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl v Ar loglevel Err bitreich.org 70 i-Set the logging level (default: 15). Err bitreich.org 70 i-. Err bitreich.org 70 i-.Bd -literal Err bitreich.org 70 i-Loglevels: Err bitreich.org 70 i- 0 - no logging Err bitreich.org 70 i- 1 - served plain files Err bitreich.org 70 i- 2 - directory listings Err bitreich.org 70 i- 4 - HTTP redirects Err bitreich.org 70 i- 8 - errors (e.g., not found) Err bitreich.org 70 i- e.g.: Err bitreich.org 70 i- 1 + 2 + 4 + 8 = 15 Err bitreich.org 70 i- (files + directories + HTTP + errors) Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl b Ar base Err bitreich.org 70 i-Root directory to serve (default: /var/gopher) Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl p Ar port Err bitreich.org 70 i-Port geomyidae should listen on (default: 70) Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl o Ar sport Err bitreich.org 70 i-Port geomyidae displays within base directory (default: 70). Err bitreich.org 70 i-. Err bitreich.org 70 i-Use in conjunction with Err bitreich.org 70 i-.Ic -p Err bitreich.org 70 i-for obfuscating actual port geomyidae is running on. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl u Ar user Err bitreich.org 70 i-Sets the user to which privileges drop when geomyidae is ready Err bitreich.org 70 i-to accept network connections (default: user geomyidae runs as). Err bitreich.org 70 i-Helps improve security by reducing privileges during request Err bitreich.org 70 i-processing. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl g Ar group Err bitreich.org 70 i-Sets the group to which privileges drop when geomyidae is ready Err bitreich.org 70 i-to accept network connections (default: group geomyidae runs as). Err bitreich.org 70 i-Helps improve security by reducing privileges during request Err bitreich.org 70 i-processing. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl h Ar host Err bitreich.org 70 i-Host to use in directory listings (default: localhost) Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Fl i Ar IP Err bitreich.org 70 i-IP to which geomyidae binds to (default: 127.0.0.1) Err bitreich.org 70 i-.El Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh FORMATTING Err bitreich.org 70 i-Structured Gopher space(s) can be created with geomyidae through the Err bitreich.org 70 i-use of special indexing files of the form Err bitreich.org 70 i-.Ic .gph Err bitreich.org 70 i-which, if present, geomyidae uses to format and/or filter the contents of Err bitreich.org 70 i-the base directory (/var/gopher by default) and create gopher menus. Err bitreich.org 70 i-However, index files are Err bitreich.org 70 i-.Em not Err bitreich.org 70 i-required: if no .gph files are found geomyidae simply lists the directory Err bitreich.org 70 i-contents in alphanumeric order. In addition, a directory can utilize Err bitreich.org 70 i-multiple index files to create a layered gopher environment without the Err bitreich.org 70 i-use of sub-directories: ie. pictures.gph, music.gph, documents.gph could Err bitreich.org 70 i-be "directories" within main.gph, yet all reside in /var/gopher along with Err bitreich.org 70 i-their respective files (*.jpg, *.mp3, *.pdf for example). Err bitreich.org 70 i-. Err bitreich.org 70 i-.Ss Anatomy of an index.gph file Err bitreich.org 70 i-In general, each line of an index.gph file has the following structure: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-.It Ic [|||] Err bitreich.org 70 i-.El Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-where, Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= A valid gopher Item Type. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-Some common Gopher Types as defined in Err bitreich.org 70 i-.Em RFC 1436 Err bitreich.org 70 i-: Err bitreich.org 70 i-. Err bitreich.org 70 i-.Bd -literal Err bitreich.org 70 i- 0 Item is a file Err bitreich.org 70 i- 1 Gopher directory Err bitreich.org 70 i- 3 Error Err bitreich.org 70 i- 7 Item is an Index-Search server. Err bitreich.org 70 i- 8 Item points to a text-based telnet session. Err bitreich.org 70 i- 9 Binary file. Client reads until TCP connection closes! Err bitreich.org 70 i- g GIF format graphics file. Err bitreich.org 70 i- I Indeterminate image file. Client decides how to display. Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-In addition, geomyidae provides these: Err bitreich.org 70 i-.Bd -literal Err bitreich.org 70 i- h Item is a hypertext (HTTP) link Err bitreich.org 70 i- i Informational Item (used for descriptive purposes) Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-Note: geomyidae doesn't require "informational" text to be formally Err bitreich.org 70 i-Typed as "[i|...]"; any line Err bitreich.org 70 i-.Em not Err bitreich.org 70 i-beginning with "[" is treated as informational, greatly simplifying the Err bitreich.org 70 i-formatting of index.gph files. Err bitreich.org 70 i-If a line begins with "t", this "t" is left out. This measurement is Err bitreich.org 70 i-there to allow lines "informational" text beginning with "[". Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= description of gopher item. Most printable characters should work. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= full path to gopher item (base value is / ). Use the "Err" path for Err bitreich.org 70 i-items not intended to be served. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= hostname or IP hosting the gopher item. Must be resolvable for the Err bitreich.org 70 i-intended clients. Err bitreich.org 70 i-. Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= TCP port number ( usually 70) Err bitreich.org 70 i-. Err bitreich.org 70 i-May be omitted if defaults are used. Err bitreich.org 70 i-.El Err bitreich.org 70 i-. Err bitreich.org 70 i-.Ss index.gph Example Err bitreich.org 70 i-A root.gph file for a server running on host=frog.bog, port=70. Note use Err bitreich.org 70 i-of optional [i]nformational Item (line 2) for vertical space insertion: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bd -literal -offset indent Err bitreich.org 70 i-Welcome to Frog.bog Err bitreich.org 70 i-[i||||] Err bitreich.org 70 i-[0|About this server|about.txt|frog.bog|70] Err bitreich.org 70 i-[0|Daily Log|/dtail.cgi|frog.bog|70] Err bitreich.org 70 i-[1|Phlog: like a blog, but not|/PHLOG|frog.bog|70] Err bitreich.org 70 i-[9|Some binary file|widget.exe|frog.bog|70] Err bitreich.org 70 i-[I|Snowflake picture|snowflake.jpg|frog.bog|70] Err bitreich.org 70 i- Err bitreich.org 70 i-Links and Searches Err bitreich.org 70 i-[1|Go to R-36.net|/|gopher.r-36.net|70] Err bitreich.org 70 i-[h|Go to NetBSD.org|URL:http://netbsd.org|frog.bog|70] Err bitreich.org 70 i-[7|Query US Weather by Zipcode|/weather.cgi?|frog.bog|70] Err bitreich.org 70 i-[7|Search Veronica II|/v2/vs|gopher.floodgap.com|70] Err bitreich.org 70 i-[8|Telnet to SDF Public Access Unix System|new|freeshell.org|23] Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-The above looks something like this in a text-based gopher client: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bl -tag -width ".It Ic WIDTHS" -compact -offset indent Err bitreich.org 70 i-.D1 Welcome to Frog.bog Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.It Ic (FILE) Err bitreich.org 70 i-About this server Err bitreich.org 70 i-.It Ic (FILE) Err bitreich.org 70 i-Daily Log Err bitreich.org 70 i-.It Ic (DIR) Err bitreich.org 70 i-Phlog: like a blog, but not Err bitreich.org 70 i-.It Ic (BIN) Err bitreich.org 70 i-Some binary file Err bitreich.org 70 i-.It Ic (IMG) Err bitreich.org 70 i-Snowflake picture Err bitreich.org 70 i-.El Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bl -tag -width ".It Ic WIDTHS" -compact -offset indent Err bitreich.org 70 i-.D1 Links and Searches Err bitreich.org 70 i-.It Ic (DIR) Err bitreich.org 70 i-Go to R-36.net Err bitreich.org 70 i-.It Ic (HTML) Err bitreich.org 70 i-Go to NetBSD.org Err bitreich.org 70 i-.It Ic (?) Err bitreich.org 70 i-Query US Weather by Zipcode Err bitreich.org 70 i-.It Ic (?) Err bitreich.org 70 i-Search Veronica II Err bitreich.org 70 i-.It Ic (TEL) Err bitreich.org 70 i-Telnet to SDF Public Access Unix System Err bitreich.org 70 i-.El Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Sh USING DYNAMIC CONTENT Err bitreich.org 70 i-Dynamic content can be generated under geomyidae by simply creating a file Err bitreich.org 70 i-in for form of Err bitreich.org 70 i-.Ic .cgi Err bitreich.org 70 i-in a directory that is being served. Such files are run as a shell script. Err bitreich.org 70 i-(See below for description.) Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-ex. dtail.cgi - prints daily log entries Err bitreich.org 70 i-. Err bitreich.org 70 i-.Bd -literal -offset indent Err bitreich.org 70 i-#!/bin/sh -e Err bitreich.org 70 i-echo "Logged activity for `date '+%A, %B %d, %Y'` :" Err bitreich.org 70 i-echo "===============================================" Err bitreich.org 70 i-LOG="/var/log/gopherd.log" Err bitreich.org 70 i-DATE=`date "+%a %b %d"` Err bitreich.org 70 i-/usr/bin/grep "$DATE" $LOG Err bitreich.org 70 i-exit 0 Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-Geomyidae supports two variable queries. The basic form is Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.D1 executable.cgi{argv[1]}?{argv[2]} Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-where Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.D1 argv[1] = strings (everything before the '?' in the query) Err bitreich.org 70 i-.D1 argv[2] = arguments (everything behind the '?' in the query) Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-A search query request must have an item Type of "7" to be called Err bitreich.org 70 i-from an index.gph file. It may also need a "?" suffix in the Err bitreich.org 70 i-field. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-ex. hello.cgi - say hello to user Err bitreich.org 70 i-. Err bitreich.org 70 i-.Bd -literal -offset indent Err bitreich.org 70 i-#!/bin/sh Err bitreich.org 70 i-NAME=$1 Err bitreich.org 70 i-echo "" Err bitreich.org 70 i-echo Hello $NAME - welcome to Frog.bog Err bitreich.org 70 i-exit 0 Err bitreich.org 70 i-.Ed Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-Call the above with the following index.gph entry: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.D1 [7|Hello You - Please enter your name|/hello.cgi?|frog.bog|70] Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-And do a simple Err bitreich.org 70 i-.Xr snarf 1 Err bitreich.org 70 i-query: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.D1 % snarf Qo gopher://frog.bog/7/hello.cgi?Christoph Qc - Err bitreich.org 70 i-.D1 Hello Christoph - welcome to Frog.bog Err bitreich.org 70 i-.Dl % Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh LOG FILES Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-The log file (/var/log/gopherd.log is default) has the following structure: Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Ic [|] () Err bitreich.org 70 i-. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-where, Err bitreich.org 70 i-. Err bitreich.org 70 i-.Bl -inset Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= access date and time (std 'date' format) Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-ex. Err bitreich.org 70 i-.Qq "Sun Feb 17 06:11:10 PST 2008" Err bitreich.org 70 i-.El Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= client IP address and port served Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-ex. Err bitreich.org 70 i-.Qq "24.208.18.127:16857" Err bitreich.org 70 i-.El Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= full path to item served Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-ex. Err bitreich.org 70 i-.D1 Qo "/PICS/simple2.jpg" Qc for an image file Err bitreich.org 70 i-.D1 Qo "/PICS" Qc for a directory access Err bitreich.org 70 i-.El Err bitreich.org 70 i-.It Ic Err bitreich.org 70 i-= query term submitted (Type 7 requests only) Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-ex. Err bitreich.org 70 i-.Dl % snarf Qq "gopher://frog.bog/7/hello.cgi?Christoph" Err bitreich.org 70 i-.Dl would log Qo "Christoph" Qc as the query term. Err bitreich.org 70 i-.El Err bitreich.org 70 i-.It Ic () Err bitreich.org 70 i-= status of client request Err bitreich.org 70 i-.Bl -inset -offset indent Err bitreich.org 70 i-ex. - some common status entries: Err bitreich.org 70 i-.El Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Bl -hang -width XXXXXXXXXXXXXXXX -compact -offset XXXXXXXXXXXX Err bitreich.org 70 i-.It Qo (serving) Qc Err bitreich.org 70 i-=> a successful request Err bitreich.org 70 i-.It Qo (not found) Qc Err bitreich.org 70 i-=> an unsuccessful request Err bitreich.org 70 i-.It Qo (HTTP redirect) Qc Err bitreich.org 70 i-=> web link redirect (Type h) Err bitreich.org 70 i-.It Qo (dir listing) Qc Err bitreich.org 70 i-=> unindexed directory listing Err bitreich.org 70 i-.El Err bitreich.org 70 i-.El Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh FILES Err bitreich.org 70 i-README, LICENSE, index.gph Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh "SEE ALSO" Err bitreich.org 70 i-Links for further information on gopher: Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.D1 Pa gopher://gopher.gopherproject.org Err bitreich.org 70 i-.D1 Pa http://www.gopherproject.org Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-.Sh STANDARDS Err bitreich.org 70 i-.Em Internet RFC 1436 Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh HISTORY Err bitreich.org 70 i-Geomyidae started as a Linux/BSD port of the Plan 9 gopherd_P9 server. Err bitreich.org 70 i-Originally called gopherd_BSD, the name was later changed to Geomyidae Err bitreich.org 70 i-(latin), the taxonomic family of burrowing rodents known as "pocket Err bitreich.org 70 i-gophers" which are in fact the true gophers. Because of inconsitencies Err bitreich.org 70 i-and the UNIX culture, the name was changed to lowercase in 2010. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh AUTHORS Err bitreich.org 70 i-See LICENSE file for authors in the distribution. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh LICENSE Err bitreich.org 70 i-Geomyidae is released under the MIT/X Consortium License. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Sh BUGS Err bitreich.org 70 i-Geomyidae occasionally aborts silently if too many simultaneous Err bitreich.org 70 i-requests are made. Limiting gopher traffic via firewall rules Err bitreich.org 70 i-may help. Err bitreich.org 70 i-.Pp Err bitreich.org 70 i-Dynamic content functionality may vary across gopher clients. Err bitreich.org 70 i-. Err bitreich.org 70 i-.Ss "Reporting Bugs" Err bitreich.org 70 i-Report bugs to: Err bitreich.org 70 i-.An "Christoph Lohmann" Aq 20h@R-36.net Err bitreich.org 70 i+.\" geomyidae.8 handcrafted in GNU groff -mdoc using nvi Err bitreich.org 70 i+.\" Err bitreich.org 70 i+.Dd March 26, 2011 Err bitreich.org 70 i+.Dt GEOMYIDAE 8 Err bitreich.org 70 i+.Os Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh NAME Err bitreich.org 70 i+.Nm geomyidae Err bitreich.org 70 i+.Nd a gopher daemon for Linux/BSD Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh SYNOPSIS Err bitreich.org 70 i+.Nm Err bitreich.org 70 i+.Bk -words Err bitreich.org 70 i+.Op Fl d Err bitreich.org 70 i+.Op Fl l Ar logfile Err bitreich.org 70 i+.Op Fl v Ar loglevel Err bitreich.org 70 i+.Op Fl b Ar base Err bitreich.org 70 i+.Op Fl p Ar port Err bitreich.org 70 i+.Op Fl o Ar sport Err bitreich.org 70 i+.Op Fl u Ar user Err bitreich.org 70 i+.Op Fl g Ar group Err bitreich.org 70 i+.Op Fl h Ar host Err bitreich.org 70 i+.Op Fl i Ar IP Err bitreich.org 70 i+.Ek Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh DESCRIPTION Err bitreich.org 70 i+.Nm Err bitreich.org 70 i+is a daemon for serving the protocol specified in Err bitreich.org 70 i+.Em RFC 1436 Err bitreich.org 70 i+(Gopher). Under 1000 lines of C by design, it is lightweight yet supports Err bitreich.org 70 i+dynamic content, automatic file/directory indexing, logging and privilege Err bitreich.org 70 i+separation. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh IMPLEMENTATION Err bitreich.org 70 i+Installation is straightforward: grab the zipped tar file, expand it in Err bitreich.org 70 i+an appropriate temp directory, change to the Err bitreich.org 70 i+.Qq "../geomyidae-x.xx" Err bitreich.org 70 i+directory, tweak the Makefile if desired (installs in Err bitreich.org 70 i+.Qq "/usr/bin" Err bitreich.org 70 i+by default), then run the Err bitreich.org 70 i+.Sq "make ; make install" Err bitreich.org 70 i+commands. The resulting executable should be run by root. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Ss Basic Installation and Startup: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bd -literal Err bitreich.org 70 i+ % wget http://www.r-36.net/src/geomyidae/geomyidae-current.tgz; Err bitreich.org 70 i+ % tar -xzvf geomyidae-*.tgz; Err bitreich.org 70 i+ % cd geomyidae-*; Err bitreich.org 70 i+ % make; sudo make install; Err bitreich.org 70 i+ % sudo mkdir -p /var/gopher; Err bitreich.org 70 i+ % sudo cp index.gph /var/gopher; Err bitreich.org 70 i+ % sudo geomyidae -l /var/log/geomyidae.log -b /var/gopher -p 70; Err bitreich.org 70 i+ % tail -f /var/log/geomyidae.log; Err bitreich.org 70 i+ Err bitreich.org 70 i+ Use whatever gopher client you like (ie. lynx) to browse: Err bitreich.org 70 i+ % lynx gopher://localhost Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.Ss Running Err bitreich.org 70 i+geomyidae should normally be started by root, although it can be started Err bitreich.org 70 i+by a regular user provided that the base directory and its contents are owned Err bitreich.org 70 i+by the same user. geomyidae will only serve content within the base directory Err bitreich.org 70 i+tree and will drop privileges to the Err bitreich.org 70 i+.Fl u Ar user Err bitreich.org 70 i+and Err bitreich.org 70 i+.Fl g Ar group Err bitreich.org 70 i+values if set. See Err bitreich.org 70 i+.Ic OPTIONS Err bitreich.org 70 i+below for specifics. Launching geomyidae automatically is best done via a UNIX Err bitreich.org 70 i+run-time (rc.d) script; several sample rc.d scripts are included in the geomyidae Err bitreich.org 70 i+source archive. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh OPTIONS Err bitreich.org 70 i+geomyidae options and default settings: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bl -tag -width ".Fl test Ao Ar string Ac" Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl d Err bitreich.org 70 i+Don't fork into background Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl l Ar logfile Err bitreich.org 70 i+Specify file where log output is written (no default) Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl v Ar loglevel Err bitreich.org 70 i+Set the logging level (default: 7) Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bd -literal Err bitreich.org 70 i+Loglevels: Err bitreich.org 70 i+ 0 - no logging Err bitreich.org 70 i+ 1 - served plain files Err bitreich.org 70 i+ 2 - directory listings Err bitreich.org 70 i+ 4 - HTTP redirects Err bitreich.org 70 i+ 8 - errors (e.g., not found) Err bitreich.org 70 i+ e.g.: Err bitreich.org 70 i+ 1 + 2 + 4 + 8 = 15 Err bitreich.org 70 i+ (files + directories + HTTP + errors) Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl b Ar base Err bitreich.org 70 i+Root directory to serve (default: /var/gopher) Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl p Ar port Err bitreich.org 70 i+Port geomyidae should listen on (default: 70) Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl o Ar sport Err bitreich.org 70 i+Port geomyidae displays within base directory (default: 70) Err bitreich.org 70 i+. Err bitreich.org 70 i+Use in conjunction with Err bitreich.org 70 i+.Ic -p Err bitreich.org 70 i+for obfuscating actual port geomyidae is running on. Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl u Ar user Err bitreich.org 70 i+Sets the user to which privileges drop when geomyidae is ready Err bitreich.org 70 i+to accept network connections (default: user geomyidae runs as). Err bitreich.org 70 i+Helps improve security by reducing privileges during request Err bitreich.org 70 i+processing. Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl g Ar group Err bitreich.org 70 i+Sets the group to which privileges drop when geomyidae is ready Err bitreich.org 70 i+to accept network connections (default: group geomyidae runs as). Err bitreich.org 70 i+Helps improve security by reducing privileges during request Err bitreich.org 70 i+processing. Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl h Ar host Err bitreich.org 70 i+Host to use in directory listings (default: localhost) Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Fl i Ar IP Err bitreich.org 70 i+IP to which geomyidae binds to (default: 127.0.0.1) Err bitreich.org 70 i+.El Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh FORMATTING Err bitreich.org 70 i+Structured Gopher space(s) can be created with geomyidae through the Err bitreich.org 70 i+use of special indexing files of the form Err bitreich.org 70 i+.Ic .gph Err bitreich.org 70 i+which, if present, geomyidae uses to format and/or filter the contents of Err bitreich.org 70 i+the base directory (/var/gopher by default) and create gopher menus. Err bitreich.org 70 i+However, index files are Err bitreich.org 70 i+.Em not Err bitreich.org 70 i+required: if no .gph files are found geomyidae simply lists the directory Err bitreich.org 70 i+contents in alphanumeric order. In addition, a directory can utilize Err bitreich.org 70 i+multiple index files to create a layered gopher environment without the Err bitreich.org 70 i+use of sub-directories: ie. pictures.gph, music.gph, documents.gph could Err bitreich.org 70 i+be "directories" within main.gph, yet all reside in /var/gopher along with Err bitreich.org 70 i+their respective files (*.jpg, *.mp3, *.pdf for example). Err bitreich.org 70 i+. Err bitreich.org 70 i+.Ss Anatomy of an index.gph file Err bitreich.org 70 i+In general, each line of an index.gph file has the following structure: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+.It Ic [|||] Err bitreich.org 70 i+.El Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+where, Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= A valid gopher Item Type. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Some common Gopher Types as defined in Err bitreich.org 70 i+.Em RFC 1436 Err bitreich.org 70 i+: Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bd -literal Err bitreich.org 70 i+ 0 Item is a file Err bitreich.org 70 i+ 1 Gopher directory Err bitreich.org 70 i+ 3 Error Err bitreich.org 70 i+ 7 Item is an Index-Search server. Err bitreich.org 70 i+ 8 Item points to a text-based telnet session. Err bitreich.org 70 i+ 9 Binary file. Client reads until TCP connection closes! Err bitreich.org 70 i+ g GIF format graphics file. Err bitreich.org 70 i+ I Indeterminate image file. Client decides how to display. Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+In addition, geomyidae provides these: Err bitreich.org 70 i+.Bd -literal Err bitreich.org 70 i+ h Item is a hypertext (HTTP) link Err bitreich.org 70 i+ i Informational Item (used for descriptive purposes) Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Note: geomyidae doesn't require "informational" text to be formally Err bitreich.org 70 i+Typed as "[i|...]"; any line Err bitreich.org 70 i+.Em not Err bitreich.org 70 i+beginning with "[" is treated as informational, greatly simplifying the Err bitreich.org 70 i+formatting of index.gph files. However, if a line begins with a "t", this Err bitreich.org 70 i+"t" is left out. This quirk is there to allow "informational" text lines Err bitreich.org 70 i+beginning with a "[" to display. For dynamically generated index files Err bitreich.org 70 i+it may be desirable to either formally Type informational text or run Err bitreich.org 70 i+it through a filter to add a second "t" - .ie sed 's/^t/&&/' . Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= description of gopher item. Most printable characters should work. Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= full path to gopher item (base value is / ). Use the "Err" path for Err bitreich.org 70 i+items not intended to be served. Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= hostname or IP hosting the gopher item. Must be resolvable for the Err bitreich.org 70 i+intended clients. Err bitreich.org 70 i+. Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= TCP port number ( usually 70) Err bitreich.org 70 i+. Err bitreich.org 70 i+May be omitted if defaults are used. Err bitreich.org 70 i+.El Err bitreich.org 70 i+. Err bitreich.org 70 i+.Ss index.gph Example Err bitreich.org 70 i+A root.gph file for a server running on host=frog.bog, port=70. Note use Err bitreich.org 70 i+of optional [i]nformational Item (line 2) for vertical space insertion: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bd -literal -offset indent Err bitreich.org 70 i+Welcome to Frog.bog Err bitreich.org 70 i+[i||Err||] Err bitreich.org 70 i+[0|About this server|about.txt|frog.bog|70] Err bitreich.org 70 i+[0|Daily Log|/dtail.cgi|frog.bog|70] Err bitreich.org 70 i+[1|Phlog: like a blog, but not|/PHLOG|frog.bog|70] Err bitreich.org 70 i+[9|Some binary file|widget.exe|frog.bog|70] Err bitreich.org 70 i+[I|Snowflake picture|snowflake.jpg|frog.bog|70] Err bitreich.org 70 i+ Err bitreich.org 70 i+Links and Searches Err bitreich.org 70 i+[1|Go to R-36.net|/|gopher.r-36.net|70] Err bitreich.org 70 i+[h|Go to NetBSD.org|URL:http://netbsd.org|frog.bog|70] Err bitreich.org 70 i+[7|Query US Weather by Zipcode|/weather.cgi?|frog.bog|70] Err bitreich.org 70 i+[7|Search Veronica II|/v2/vs|gopher.floodgap.com|70] Err bitreich.org 70 i+[8|Telnet to SDF Public Access Unix System|null|freeshell.org|23] Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+The above looks something like this in a text-based gopher client: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bl -tag -width ".It Ic WIDTHS" -compact -offset indent Err bitreich.org 70 i+.D1 Welcome to Frog.bog Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.It Ic (FILE) Err bitreich.org 70 i+About this server Err bitreich.org 70 i+.It Ic (FILE) Err bitreich.org 70 i+Daily Log Err bitreich.org 70 i+.It Ic (DIR) Err bitreich.org 70 i+Phlog: like a blog, but not Err bitreich.org 70 i+.It Ic (BIN) Err bitreich.org 70 i+Some binary file Err bitreich.org 70 i+.It Ic (IMG) Err bitreich.org 70 i+Snowflake picture Err bitreich.org 70 i+.El Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bl -tag -width ".It Ic WIDTHS" -compact -offset indent Err bitreich.org 70 i+.D1 Links and Searches Err bitreich.org 70 i+.It Ic (DIR) Err bitreich.org 70 i+Go to R-36.net Err bitreich.org 70 i+.It Ic (HTML) Err bitreich.org 70 i+Go to NetBSD.org Err bitreich.org 70 i+.It Ic (?) Err bitreich.org 70 i+Query US Weather by Zipcode Err bitreich.org 70 i+.It Ic (?) Err bitreich.org 70 i+Search Veronica II Err bitreich.org 70 i+.It Ic (TEL) Err bitreich.org 70 i+Telnet to SDF Public Access Unix System Err bitreich.org 70 i+.El Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Sh DYNAMIC CONTENT (gopher CGI) Err bitreich.org 70 i+There are two options provided for dynamic content creation: standard CGI ( Err bitreich.org 70 i+.Ic .cgi Err bitreich.org 70 i+) and dynamic CGI Err bitreich.org 70 i+( Err bitreich.org 70 i+.Ic .dcgi Err bitreich.org 70 i+). Despite the names, both can accept input and generate dynamic content; Err bitreich.org 70 i+the only difference is the latter re-formats it's output so it appears to Err bitreich.org 70 i+the server as a standard geomyidae index (.gph) file. This makes the Err bitreich.org 70 i+creation of on-the-fly gopher directories much easier (see examples). Err bitreich.org 70 i+All scripts must be under the gopher root directory and be executable by Err bitreich.org 70 i+the same user:group running geomyidae. Consequently, it is best to use Err bitreich.org 70 i+the -u and -g server options to avoid running as root. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Both .cgi and .dcgi scripts have the same argument call structure (as seen by geomyidae): Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 executable.[d]cgi $search $arguments $host $port Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+where Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 search = query string (type 7) or Qo Qc (type 0) Err bitreich.org 70 i+.D1 arguments = Qo Qc Err bitreich.org 70 i+.D1 host = server's hostname ("localhost" by default) Err bitreich.org 70 i+.D1 port = server's port ("70" by default) Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+All terms are tab-separated (per gopher protocol) which can cause some Err bitreich.org 70 i+surprises depending on how a script is written. See the CGI file (included Err bitreich.org 70 i+in the geomyidae source archive) for further elaboration. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Ss Some CGI Examples Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Note: these are a very simple examples with no fitness checks with respect Err bitreich.org 70 i+to safety/security. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+ex. uptime.cgi - standard CGI, no queries Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bd -literal -offset indent Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+# uptime.cgi - prints system uptime(1) Err bitreich.org 70 i+/usr/bin/uptime Err bitreich.org 70 i+exit 0 Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Call the above with the following index.gph entry: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 [0|System Uptime|/uptime.cgi|frog.bog|70] Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+A search query request must have an item Type of "7" to be called Err bitreich.org 70 i+from an index.gph file. It also needs a "?" suffix in the Err bitreich.org 70 i+field: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+ex. hello.cgi - standard CGI with query Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bd -literal -offset indent Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+# hello.cgi - welcome user Err bitreich.org 70 i+NAME=$1 Err bitreich.org 70 i+echo "" Err bitreich.org 70 i+echo Hello $NAME - welcome to Frog.bog Err bitreich.org 70 i+exit 0 Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Call the above with the following index.gph entry: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 [7|Hello You - Please enter your name|/hello.cgi?|frog.bog|70] Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+And do a simple Err bitreich.org 70 i+.Xr snarf 1 Err bitreich.org 70 i+query: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 % snarf Qo gopher://frog.bog/7/hello.cgi?Christoph Qc - Err bitreich.org 70 i+.D1 Hello Christoph - welcome to Frog.bog Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Dynamic CGI entries are similar to above except that the script Err bitreich.org 70 i+needs to create output as described in the Err bitreich.org 70 i+.Ic FORMATTING Err bitreich.org 70 i+section: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+ex. jughead.dcgi - dynamic CGI script with query Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bd -literal -offset indent Err bitreich.org 70 i+#!/bin/sh Err bitreich.org 70 i+# jughead.dcgi - jughead-like local gopher search Err bitreich.org 70 i+KWRD="$1" Err bitreich.org 70 i+ARCHIVE="/var/gopher/textfiles/" Err bitreich.org 70 i+echo "[i|Search results for \\"${KWRD}\\":|Err||]" Err bitreich.org 70 i+echo "[i|----|Err||]" Err bitreich.org 70 i+# grep(1) recursive, case-insensitive KWRD search of ARCHIVE: Err bitreich.org 70 i+for RESULT in $(/usr/bin/grep -i -l -m1 ${KWRD} -r $ARCHIVE) Err bitreich.org 70 i+do Err bitreich.org 70 i+ DESC=$(/usr/bin/basename ${RESULT}) Err bitreich.org 70 i+ PATH=$(echo "$RESULT" | /usr/bin/sed 's/^\\/var\\/gopher//') Err bitreich.org 70 i+ echo "[0|${DESC}|${PATH}|frog.bog|70]" Err bitreich.org 70 i+done Err bitreich.org 70 i+exit 0 Err bitreich.org 70 i+.Ed Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Call the above with the following index.gph entry: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 [7|Search this Gopher|/jughead.dcgi?|frog.bog|70] Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+A successful query might look like this: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bl -tag -width ".It Ic WIDTHS" -compact -offset indent Err bitreich.org 70 i+.D1 Search results for Qo fubar Qc : Err bitreich.org 70 i+.D1 ---- Err bitreich.org 70 i+.It Ic (FILE) Err bitreich.org 70 i+How_Things_Break.txt Err bitreich.org 70 i+.It Ic (FILE) Err bitreich.org 70 i+Origins_of_Words.txt Err bitreich.org 70 i+.It Ic (FILE) Err bitreich.org 70 i+Phrases_of_the_Ages.txt Err bitreich.org 70 i+.El Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Care should to be exercised to avoid creating miss-Typed entries, unwanted Err bitreich.org 70 i+recursions, and/or unintended writes in the working directory. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Sh LOG FILES Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+The log file (ie. /var/log/gopherd.log) has the following structure: Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Ic [|] () Err bitreich.org 70 i+. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+where, Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bl -inset Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= access date and time (std 'date' format) Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+ex. Err bitreich.org 70 i+.Qq "Sun Feb 17 06:11:10 PST 2008" Err bitreich.org 70 i+.El Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= client IP address and port served Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+ex. Err bitreich.org 70 i+.Qq "24.208.18.127:16857" Err bitreich.org 70 i+.El Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= full path to item served Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+ex. Err bitreich.org 70 i+.D1 Qo "/PICS/simple2.jpg" Qc for an image file Err bitreich.org 70 i+.D1 Qo "/PICS" Qc for a directory access Err bitreich.org 70 i+.El Err bitreich.org 70 i+.It Ic Err bitreich.org 70 i+= query term submitted (Type 7 requests only) Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+ex. Err bitreich.org 70 i+.Dl % snarf Qq "gopher://frog.bog/7/hello.cgi?Christoph" Err bitreich.org 70 i+.Dl would log Qo "Christoph" Qc as the query term. Err bitreich.org 70 i+.El Err bitreich.org 70 i+.It Ic () Err bitreich.org 70 i+= status of client request Err bitreich.org 70 i+.Bl -inset -offset indent Err bitreich.org 70 i+ex. - some common status entries: Err bitreich.org 70 i+.El Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Bl -hang -width XXXXXXXXXXXXXXXX -compact -offset XXXXXXXXXXXX Err bitreich.org 70 i+.It Qo (serving) Qc Err bitreich.org 70 i+=> a successful request Err bitreich.org 70 i+.It Qo (not found) Qc Err bitreich.org 70 i+=> an unsuccessful request Err bitreich.org 70 i+.It Qo (HTTP redirect) Qc Err bitreich.org 70 i+=> web link redirect (Type h) Err bitreich.org 70 i+.It Qo (dir listing) Qc Err bitreich.org 70 i+=> unindexed directory listing Err bitreich.org 70 i+.El Err bitreich.org 70 i+.El Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh FILES Err bitreich.org 70 i+README, LICENSE, CGI, index.gph, rc.d/ Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh "SEE ALSO" Err bitreich.org 70 i+Links for further information on gopher: Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.D1 Pa gopher://gopher.floodgap.com Err bitreich.org 70 i+.D1 Pa gopher://gopher.gopherproject.org Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+.Sh STANDARDS Err bitreich.org 70 i+.Em Internet RFC 1436 Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh HISTORY Err bitreich.org 70 i+geomyidae started as a Linux/BSD port of the Plan 9 gopherd_P9 server. Err bitreich.org 70 i+Originally called gopherd_BSD, the name was later changed to Geomyidae Err bitreich.org 70 i+(latin), the taxonomic family of burrowing rodents known as "pocket Err bitreich.org 70 i+gophers" which are in fact the true gophers. Due to inconsistencies Err bitreich.org 70 i+and the UNIX culture, the name was changed to lowercase in 2010. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh AUTHORS Err bitreich.org 70 i+See LICENSE file for authors in the distribution. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh LICENSE Err bitreich.org 70 i+geomyidae is released under the MIT/X Consortium License. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh BUGS Err bitreich.org 70 i+geomyidae occasionally aborts silently if too many simultaneous Err bitreich.org 70 i+requests are made. Limiting gopher traffic via firewall rules Err bitreich.org 70 i+may help. Err bitreich.org 70 i+.Pp Err bitreich.org 70 i+Dynamic content functionality may vary across gopher clients. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Ss "Reporting Bugs" Err bitreich.org 70 i+Report bugs to: Err bitreich.org 70 i+.An "Christoph Lohmann" Aq 20h@R-36.net Err bitreich.org 70 .