<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="index" title="Text File" newcontext="true">
<p>
Received: with ECARTIS (v1.0.0; list gopher);
 Thu, 18 Dec 2003 10:53:38 -0600 (CST)
Return-Path: &lt;chris@hal3000.cx&gt;
X-Original-To: gopher@complete.org
Delivered-To: gopher@complete.org
Received: from localhost (localhost [127.0.0.1])
	by glockenspiel.complete.org (Postfix) with ESMTP id ACAEAC2
	for &lt;gopher@complete.org&gt;; Thu, 18 Dec 2003 10:53:37 -0600 (CST)
Received: from hal3000.cx (hal3000.cx [208.178.204.173])
	by glockenspiel.complete.org (Postfix) with ESMTP id 3B9A44E
	for &lt;gopher@complete.org&gt;; Thu, 18 Dec 2003 10:53:33 -0600 (CST)
Received: from hal3000.cx (localhost.hal3000.cx [127.0.0.1])
	by hal3000.cx (8.9.3/8.9.3) with ESMTP id KAA26717
	for &lt;gopher@complete.org&gt;; Thu, 18 Dec 2003 10:53:31 -0600 (CST)
	(envelope-from chris@hal3000.cx)
Message-ID: &lt;3FE1DB8B.E5065BEA@hal3000.cx&gt;
Date: Thu, 18 Dec 2003 10:53:31 -0600
From: Chris &lt;chris@hal3000.cx&gt;
X-Mailer: Mozilla 4.73 [en] (X11; I; FreeBSD 4.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: gopher@complete.org
Subject: [gopher] Re: .names
References: &lt;3FE138EB.F16EB6B@hal3000.cx&gt;
 &lt;20031218142730.GA19345@complete.org&gt;
Content-type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 8bit
X-Scanned-By: clamscan at complete.org
X-archive-position: 871
X-ecartis-version: Ecartis v1.0.0
Sender: gopher-bounce@complete.org
Errors-to: gopher-bounce@complete.org
X-original-sender: chris@hal3000.cx
Precedence: bulk
Reply-to: gopher@complete.org
List-help: &lt;mailto:ecartis@complete.org?Subject=help&gt;
List-unsubscribe: &lt;mailto:gopher-request@complete.org?Subject=unsubscribe&gt;
List-software: Ecartis version 1.0.0
List-Id: Gopher &lt;gopher.complete.org&gt;
X-List-ID: Gopher &lt;gopher.complete.org&gt;
List-subscribe: &lt;mailto:gopher-request@complete.org?Subject=subscribe&gt;
List-owner: &lt;mailto:jgoerzen@complete.org&gt;
List-post: &lt;mailto:gopher@complete.org&gt;
List-archive: &lt;http://www.complete.org/mailinglists/archives/&gt;
X-list: gopher
</p>
<p>John Goerzen wrote:
&gt;
&gt; On Wed, Dec 17, 2003 at 11:19:39PM -0600, Chris wrote:
&gt; &gt; Still no go, Name=works, Numb=has no affect.
&gt; &gt; Just to verify...
&gt; &gt; It should be exactly like this:
&gt; &gt; Numb=1
&gt;
&gt; Correct.  But note that you have the lines in the wrong order:
</p>
<p></p>
<p>ok new .names
##########################################################################################################
Path=./ignoredfoo
Name=Welcome to the Hal3000 Gopher!
Type=i
Numb=1
Host=+
Port=+
</p>
<p>Path=./0index.txt
Name=Intro
Type=0
Numb=2
Host=+
Port=+
</p>
<p>Path=./News
Name=News
Type=1
Numb=3
Host=+
Port=+
</p>
<p>Path=./Financial
Name=Financial
Type=1
Numb=4
Host=+
Port=+
</p>
<p>Path=./Weather
Name=Weather
Type=1
Numb=5
Host=+
Port=+
</p>
<p>Path=./Audio_Visual
Name=Audio Visual
Type=1
Numb=6
Host=+
Port=+
</p>
<p>Path=./Software
Name=Software
Type=1
Numb=7
Host=+
Port=+
</p>
<p>Path=./Misc
Name=Misc
Type=1
Numb=8
Host=+
Port=+
</p>
<p>Path=./Recipes
Name=Recipes
Type=1
Numb=9
Host=+
Port=+
</p>
<p>Path=./Phlog
Name=Phlog
Type=1
Numb=10
Host=+
Port=+
</p>
<p>Path=./Links
Name=Links
Type=1
Numb=11
Host=+
Port=+
</p>
<p>Path=
Name=Search Hal3000, PCW aerv, Floodgap, Quux and SiMpLe MaChinEs
gopherspace
Type=7
Numb=12
Host=hal3000.cx
Port=3000
########################################################################################################
</p>
<p>pygopherd.conf
</p>
<p>########################################################################################################
</p>
<p>######################################################################
# OVERALL SETTINGS FOR PYGOPHERD
######################################################################
</p>
<p>[pygopherd]
</p>
<p>##################################################
# Operating System / Overall Behavior
##################################################
</p>
<p># Set this to true if you want the server to &quot;detach&quot; itself; that is,
# to go into the background after it starts.
</p>
<p>detach = yes
</p>
<p># If you want gopherd to write a PID file, set this to the location
# where you want it.  Otherwise, comment out this line.
</p>
<p>pidfile = /var/run/pygopherd.pid
</p>
<p>##################################################
# Network
##################################################
</p>
<p># The server name to present to the world.  If you do not specify it
# here, Pygopherd will attempt to figure it out automatically.
# This is used only to present to clients.  It does not control
# where the server listens.
#
servername = hal3000.cx
</p>
<p># The interface on which to listen.  It should be an IP address or
# a domain name.  If specified, pygopherd will attempt to listen to
# the specified port on only this interface -- useful if you are doing
# virtual hosting.  If not specified, pygopherd will listen on all
# interfaces the OS provides.  If in doubt, do not specify this.
#
# interface = gopher.example.com
</p>
<p># What port to listen on.  If not running as root, this must be
# greater than 1024.
</p>
<p>port = 70
</p>
<p># Type of server to run.  Valid options are ForkingTCPServer
# and ThreadingTCPServer.  ForkingTCPServer is highly recommended
# for now.
</p>
<p>servertype = ForkingTCPServer
</p>
<p># What port to *say* we&#x27;re listening on.  Most people should NOT
# specify this.  You might want to if you are using firewalling or
# port forwarding and the port number is different to the world than
# it is locally.
</p>
<p># advertisedport = 70
</p>
<p>##################################################
# Data Handling
##################################################
</p>
<p># You can add a header to every directory by creating a
# .abstract file in that directory and filling it with the
# information you like.  This will then be rendered as a header
# for the directory.  This option controls this feature.  Note:
# for this to work, you must define a mapping to ABSTRACT in eaexts
# below.
</p>
<p>abstract_headers = on
</p>
<p># Individual files and folders can also have abstracts.  You can
# choose to have pygopherd render these abstracts in the directory
# listing itself -- they&#x27;ll appear beneath the menu name for the file.
# You can set this option to any of three values:
#
# always -- always render these abstracts.
# unsupported -- render them only for protocols that do not natively
# support abstracts.  Gopher+ is the only protocol that natively
# supports them currently.
# never -- never render these abstracts.
</p>
<p>abstract_entries = always
</p>
<p>##################################################
# Error handling
##################################################
</p>
<p># If there is an error, you can decide whether or not to log a full
# backtrace.  A full backtrace will usually be needed to find the
# problem.
</p>
<p>tracebacks = yes
</p>
<p>##################################################
# Security
##################################################
</p>
<p>## Whether or not to use chroot.
# This option is only valid if you are running pygopherd as root!
</p>
<p>usechroot = yes
</p>
<p>## Username and groupname to setreuid/setregid to.  Valid only if
## starting pygopherd as root.  Comment out if you don&#x27;t want this
## functionality.  NOTE: DO NOT RUN AS ROOT UNLESS YOU USE THESE!  BAD
BAD BAD!
</p>
<p>setuid = chris
setgid = chris
</p>
<p>##################################################
# Filesystem and MIME
##################################################
</p>
<p># Where the documents are stored.
</p>
<p>root = /usr/home/chris/gopher-data
</p>
<p># Location of a file to use to figure out MIME types.  You can
# specify multiple files here -- just separate them with a colon.
# ALL of them that are found will be read.
</p>
<p>mimetypes = ./conf/mime.types:/etc/pygopherd/mime.types:/etc/mime.types
</p>
<p># Encodings.  You can use the default with the following syntax.  The
# mimetypex.encodings_map is {&#x27;.Z&#x27;: &#x27;compress&#x27;, &#x27;.gz&#x27;: &#x27;gzip&#x27;}.
#
# For ease of use in the config file, we specify this as a list of
# tuples.  You can convert any hash to a list of tuples by using
.items()
</p>
<p># encoding = mimetypes.encodings_map.items()
</p>
<p># You can override the default entirely (ie, to remove those) like this:
</p>
<p># encoding = {&#x27;.bz2&#x27; : &#x27;bzip2&#x27;, &#x27;.gz&#x27; : &#x27;gzip&#x27;}.items()
# Or the same thing:
# encoding = [(&#x27;.bz2&#x27;, &#x27;bzip2&#x27;), (&#x27;.gz&#x27;, &#x27;gzip&#x27;)]
</p>
<p># Or, you can extend the default like so:
</p>
<p>encoding = mimetypes.encodings_map.items() + \
          {&#x27;.bz2&#x27; : &#x27;bzip2&#x27;,
           &#x27;.tal&#x27;: &#x27;tal.TALFileHandler&#x27;
          }.items()
</p>
<p>######################################################################
# Logging
######################################################################
</p>
<p>[logger]
</p>
<p># Log method to use.  One of:
#  syslog -- use Unix syslog facility
#  file -- log to standard output (future capability for logging to
other
#          files)
#  none   -- no logging
</p>
<p>logmethod = syslog
</p>
<p># If you enable syslog, you will need to define these as well:
</p>
<p># priority -- one of the following (listed in order of high to low):
# LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE,
# LOG_INFO, LOG_DEBUG
</p>
<p>priority = LOG_INFO
</p>
<p># Facility -- one of the following:
# LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH, LOG_LPR, LOG_NEWS,
# LOG_UUCP, LOG_CRON, LOG_LOCAL0 - LOG_LOCAL7
</p>
<p>facility = LOG_LOCAL3
</p>
<p></p>
<p></p>
<p>######################################################################
# GOPHER OBJECTS
######################################################################
</p>
<p># Settings for gopher objects
</p>
<p>[GopherEntry]
</p>
<p># Use this MIME type if no other type is found.
defaultmimetype = text/plain
</p>
<p># Mapping from MIME types to gopher0 single-character types.
# This is a list of lists.  The first entry in each list is a
# regexp to match and the second is the result.
#
# Please have a .* at the end to map all unknown types to a certain
# character.  For best results, that character should be nicely
# corresponding to the defaultmimetype.
</p>
<p>mapping = [[&#x27;text/html&#x27;, &#x27;h&#x27;],
        [&#x27;text/.+&#x27;, &#x27;0&#x27;],
        [&#x27;application/mac-binhex40&#x27;, &#x27;4&#x27;],
        [&#x27;audio/.+&#x27;, &#x27;s&#x27;],
        [&#x27;image/gif&#x27;, &#x27;g&#x27;],
        [&#x27;image/.+&#x27;, &#x27;I&#x27;],
        [&#x27;application/gopher-menu&#x27;, &#x27;1&#x27;],
        [&#x27;application/gopher\+-menu&#x27;, &#x27;1&#x27;],
        [&#x27;multipart/mixed&#x27;, &#x27;M&#x27;],
        [&#x27;application/.+&#x27;, &#x27;9&#x27;],
        [&#x27;.*&#x27;, &#x27;0&#x27;]
        ]
</p>
<p># This is used by the system to generate Extended Attribute (EA), aka
# Gopher+ blocks for a file.  Basically, with the setup shown below,
# you can create &quot;filename.txt.abstract&quot; to define the abstract
# property for filename.txt.  If you do that, you will probably want
# to add these properties to ignorepatt below.  The list is a mapping
# from an extension to a block name.
#
# Sample for UMN compatibility:
#
eaexts = {&#x27;.abstract&#x27; : &#x27;ABSTRACT&#x27;,
          &#x27;.keywords&#x27; : &#x27;KEYWORDS&#x27;,
          &#x27;.ask&#x27; : &#x27;ASK&#x27;,
          &#x27;.3d&#x27; : &#x27;3D&#x27;}
#
# If you want to disable this capability, use this:
#
</p>
<p># eaexts = {}
</p>
<p></p>
<p>######################################################################
# HANDLERS
######################################################################
</p>
<p>##################################################
# Handler multiplexer
##################################################
</p>
<p>[handlers.HandlerMultiplexer]
</p>
<p># A list of the handlers to consider.  The handlers
# are tried in the order listed.
#
#
### Suggested settings:
# Note: the UMNDirHandler will handle all directories, even if they
# do not have UMN-specific files, so you do not need to list the
# dirhandler in this case.
#
# Warning: scriptexec and pyg can execute arbitrary code stored in
# your path.  Don&#x27;t enable unless you know what you&#x27;re doing!
#
# For UMN emulation:  (full UMN featureset excluding scriptexec, no
others)
#
handlers = [url.HTMLURLHandler, UMN.UMNDirHandler,
            html.HTMLFileTitleHandler,
            mbox.MBoxMessageHandler, mbox.MBoxFolderHandler,
            file.CompressedFileHandler, file.FileHandler]
#
# For Bucktooth emulation:  (full Buck featureset excluding scriptexec)
#
#handlers = [gophermap.BuckGophermapHandler, url.HTMLURLHandler,
#             file.FileHandler, dir.DirHandler]
#
# For full Pygopherd featureset excluding scripts, compression, and PYG.
# Supports both UMN and Bucktooth featuresets.  This is the default
# configuration for Pygopherd because it is secure yet versatile.
#
</p>
<p>handlers = [url.HTMLURLHandler, gophermap.BuckGophermapHandler,
            mbox.MaildirFolderHandler, mbox.MaildirMessageHandler,
            UMN.UMNDirHandler, html.HTMLFileTitleHandler,
            mbox.MBoxMessageHandler, mbox.MBoxFolderHandler,
            file.FileHandler]
</p>
<p># For full Pygopherd featureset including scripts and PYG.  Same as
# above but adds scripts, decompression, and PYG execution.
</p>
<p>#handlers = [url.HTMLURLHandler, gophermap.BuckGophermapHandler,
#            mbox.MaildirFolderHandler, mbox.MaildirMessageHandler,
#            UMN.UMNDirHandler,
#            tal.TALFileHandler,
#            html.HTMLFileTitleHandler,
#            mbox.MBoxMessageHandler, mbox.MBoxFolderHandler,
#            pyg.PYGHandler, scriptexec.ExecHandler,
#            file.CompressedFileHandler, file.FileHandler,
#            url.URLTypeRewriter]
</p>
<p>##################################################
# Decompressing file handler
##################################################
</p>
<p>[handlers.file.CompressedFileHandler]
</p>
<p># Decompressors is a map from an encoding (as specified in the
# pygopherd section above) to a decompression program.
# The decompression program must
# accept the input in its stdin and write the decompressed output
# to stdout.
#
# If you do not want to decompress things automatically for your
# clients, you might wish to NOT use this handler.
#
# Note: this feature is probably NOT compatible with chroot unless
# you take extra precautions.
</p>
<p># We enable no decompressors by default... you&#x27;ll need to do that.
</p>
<p>decompressors = {}
</p>
<p>#decompressors = {&#x27;bzip2&#x27;: &#x27;bzcat&#x27;,
#              &#x27;gzip&#x27; : &#x27;zcat&#x27;,
#              &#x27;compress&#x27; : &#x27;zcat&#x27;}
</p>
<p># Regexp to match against filenames pending decompression.
# The default will let ALL files be decompressed.
</p>
<p>decompresspatt = .*
</p>
<p># You can be more restrictive:
</p>
<p># decompresspatt = \.txt\.(bz2|gz|Z)$
</p>
<p></p>
<p>##################################################
# Directory handler
##################################################
</p>
<p>[handlers.dir.DirHandler]
# A regular expression of files to ignore.  These files
# will not be presented in lists of files to clients,
# but if clients know the exact path to the files, they can
# still be requested.
#
# This pattern is matched against the requested selector.
# Selectors are guaranteed to begin with a slash by this point.
# and never end with a slash unless they consist solely of a slash.
#
# By default, we ignore files starting with a period, gophermap
# files, and files ending with a tilde.
#
# The default emulates UMN&#x27;s default plus buck.  Please note:
# UMNDirHandler implicitly will keep all files starting with a dot out
of
# directory listings.  If you exclude these files explicitly in
ignorepatt,
# then not only will they not show up, but the handler will also not
scan
# them for links and the like.
#
# A buck-only server might like:
#
# ignorepatt = ~$|/\.|/gophermap$
</p>
<p>ignorepatt =
/.cap$|/lost\+found$|/lib$|/bin$|/etc$|/dev$|~$|/\.cache|/\.forward$|/\.message$|/\.hushlogin$|/\.kermrc$|/\.notar$|/\.where$|/veronica.ctl$|/robots.txt$|/nohup.out$|/gophermap$|\.abstract$|\.keyboards$|\.ask|\.3d$|~$
</p>
<p># Expiration time, in seconds, for the cache.
# Set to 0 to disable caching entirely.
</p>
<p>cachetime = 180
</p>
<p># Name of the cahe file.  Must be set to something even if the cachetime
# is zero.  In that case, this filename will not be used but for the
conf
# file to parse, it must still be set.
</p>
<p>cachefile = .cache.pygopherd.dir
</p>
<p>##################################################
# UMN Directory Handler
##################################################
</p>
<p>[handlers.UMN.UMNDirHandler]
</p>
<p># Extension stripping behavior.  When a file from a directory
# is presented in a menu, and no name is given, what to do?
# For instance, given a file Welcome.txt and pygopherd.tar.gz:
#
# If extstrip is none, present Welcome.txt and pygopherd.tar.gz in the
# menu.
#
# If extstrip is nonencoded, modify only those files that do not
# have encodings.  (If CompressedFileHandler is used, modify only
# those files that to not have *HANDLED* encodings.)
# If gzip is NOT a handled encoding, you&#x27;d get names Welcome and
# pygopherd.tar.gz.  If gzip IS a handled encoding, you&#x27;d get
# Welcome and pygopherd.
#
# If extstrip is full, modify all modifyable names.  Welcome.txt -&gt;
# Welcome and pygopherd.tar.gz -&gt; pygopherd.
</p>
<p># extstrip = none
extstrip = nonencoded
# extstrip = full
</p>
<p>[handlers.ZIP.ZIPHandler]
##################################################
# ZIP file handler
##################################################
</p>
<p># Even if it&#x27;s listed in the available handlers, it&#x27;s disabled here by
# default.
</p>
<p>enabled = false
</p>
<p>pattern = \.zip$
</p>
<p>######################################################################
# PROTOCOLS
######################################################################
</p>
<p>##################################################
# Protocol Multiplexer
##################################################
</p>
<p>[protocols.ProtocolMultiplexer]
</p>
<p># A list of the protocols to consider for each request.
# The protocols are tried in the order listed.
</p>
<p>protocols = [wap.WAPProtocol, http.HTTPProtocol,
             gopherp.GopherPlusProtocol, rfc1436.GopherProtocol]
</p>
<p>##################################################
# Gopher+ Protocol
##################################################
</p>
<p>[protocols.gopherp.GopherPlusProtocol]
# The name and e-mail of the administrator
admin = Unconfigured Pygopherd Admin &lt;pygopherd@nowhere.nowhere&gt;
</p>
<p>##################################################
# HTTP Protocol
##################################################
</p>
<p>[protocols.http.HTTPProtocol]
iconmapping = {&#x27;h&#x27; : &#x27;text.gif&#x27;,
            &#x27;0&#x27; : &#x27;text.gif&#x27;,
            &#x27;4&#x27; : &#x27;binhex.gif&#x27;,
            &#x27;s&#x27; : &#x27;sound1.gif&#x27;,
            &#x27;g&#x27; : &#x27;image3.gif&#x27;,
            &#x27;I&#x27; : &#x27;image3.gif&#x27;,
            &#x27;M&#x27; : &#x27;text.gif&#x27;,
            &#x27;9&#x27; : &#x27;binary.gif&#x27;,
            &#x27;1&#x27; : &#x27;folder.gif&#x27;,
            &#x27;7&#x27; : &#x27;folder.gif&#x27;,
            &#x27;i&#x27; : &#x27;blank.gif&#x27;}
</p>
<p># You can use this option to put something at the top of each HTML
# page generated.
#
# The following tokens will be interpolated:
#
# GOPHERURL          -- the Gopher URL for this page.
#
</p>
<p>pagetopper = Welcome to Gopherspace!  You are browsing Gopher through
   a Web interface right now.  You can use most browsers or Gopher
   clients to browse Gopher natively.  If your browser supports it,
   &lt;A HREF=&quot;GOPHERURL&quot;&gt;try clicking here&lt;/A&gt; to see this page
   in Gopher directly.  To find Gopher browsers,
   &lt;A HREF=&quot;http://quux.org:70/Software/Gopher/Downloads/Clients&quot;&gt;click
   here&lt;/A&gt;.&lt;HR&gt;
</p>
<p>##################################################
# WAP Protocol
##################################################
</p>
<p>[protocols.wap.WAPProtocol]
</p>
<p># waptop is the URL to access with WAP devices.  The default, /wap,
means
# that accessing http://sitename.com/wap will bring up your site in WAP
# mode.
#
# PyGopherd can autodetect WAP from some phones, so this is not always
# necessary.
</p>
<p>waptop = /wap
</p>
</card>
</wml>
