Received: with ECARTIS (v1.0.0; list gopher); Thu, 18 Dec 2003 10:53:38 -0600 (CST) Return-Path: 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 ; 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 ; 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 ; Thu, 18 Dec 2003 10:53:31 -0600 (CST) (envelope-from chris@hal3000.cx) Message-ID: <3FE1DB8B.E5065BEA@hal3000.cx> Date: Thu, 18 Dec 2003 10:53:31 -0600 From: Chris 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: <3FE138EB.F16EB6B@hal3000.cx> <20031218142730.GA19345@complete.org> 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: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: Gopher X-List-ID: Gopher List-subscribe: List-owner: List-post: List-archive: X-list: gopher John Goerzen wrote: > > On Wed, Dec 17, 2003 at 11:19:39PM -0600, Chris wrote: > > Still no go, Name=works, Numb=has no affect. > > Just to verify... > > It should be exactly like this: > > Numb=1 > > Correct. But note that you have the lines in the wrong order: ok new .names ########################################################################################################## Path=./ignoredfoo Name=Welcome to the Hal3000 Gopher! Type=i Numb=1 Host=+ Port=+ Path=./0index.txt Name=Intro Type=0 Numb=2 Host=+ Port=+ Path=./News Name=News Type=1 Numb=3 Host=+ Port=+ Path=./Financial Name=Financial Type=1 Numb=4 Host=+ Port=+ Path=./Weather Name=Weather Type=1 Numb=5 Host=+ Port=+ Path=./Audio_Visual Name=Audio Visual Type=1 Numb=6 Host=+ Port=+ Path=./Software Name=Software Type=1 Numb=7 Host=+ Port=+ Path=./Misc Name=Misc Type=1 Numb=8 Host=+ Port=+ Path=./Recipes Name=Recipes Type=1 Numb=9 Host=+ Port=+ Path=./Phlog Name=Phlog Type=1 Numb=10 Host=+ Port=+ Path=./Links Name=Links Type=1 Numb=11 Host=+ Port=+ Path= Name=Search Hal3000, PCW aerv, Floodgap, Quux and SiMpLe MaChinEs gopherspace Type=7 Numb=12 Host=hal3000.cx Port=3000 ######################################################################################################## pygopherd.conf ######################################################################################################## ###################################################################### # OVERALL SETTINGS FOR PYGOPHERD ###################################################################### [pygopherd] ################################################## # Operating System / Overall Behavior ################################################## # Set this to true if you want the server to "detach" itself; that is, # to go into the background after it starts. detach = yes # If you want gopherd to write a PID file, set this to the location # where you want it. Otherwise, comment out this line. pidfile = /var/run/pygopherd.pid ################################################## # Network ################################################## # 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 # 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 # What port to listen on. If not running as root, this must be # greater than 1024. port = 70 # Type of server to run. Valid options are ForkingTCPServer # and ThreadingTCPServer. ForkingTCPServer is highly recommended # for now. servertype = ForkingTCPServer # What port to *say* we'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. # advertisedport = 70 ################################################## # Data Handling ################################################## # 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. abstract_headers = on # Individual files and folders can also have abstracts. You can # choose to have pygopherd render these abstracts in the directory # listing itself -- they'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. abstract_entries = always ################################################## # Error handling ################################################## # 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. tracebacks = yes ################################################## # Security ################################################## ## Whether or not to use chroot. # This option is only valid if you are running pygopherd as root! usechroot = yes ## Username and groupname to setreuid/setregid to. Valid only if ## starting pygopherd as root. Comment out if you don't want this ## functionality. NOTE: DO NOT RUN AS ROOT UNLESS YOU USE THESE! BAD BAD BAD! setuid = chris setgid = chris ################################################## # Filesystem and MIME ################################################## # Where the documents are stored. root = /usr/home/chris/gopher-data # 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. mimetypes = ./conf/mime.types:/etc/pygopherd/mime.types:/etc/mime.types # Encodings. You can use the default with the following syntax. The # mimetypex.encodings_map is {'.Z': 'compress', '.gz': 'gzip'}. # # 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() # encoding = mimetypes.encodings_map.items() # You can override the default entirely (ie, to remove those) like this: # encoding = {'.bz2' : 'bzip2', '.gz' : 'gzip'}.items() # Or the same thing: # encoding = [('.bz2', 'bzip2'), ('.gz', 'gzip')] # Or, you can extend the default like so: encoding = mimetypes.encodings_map.items() + \ {'.bz2' : 'bzip2', '.tal': 'tal.TALFileHandler' }.items() ###################################################################### # Logging ###################################################################### [logger] # 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 logmethod = syslog # If you enable syslog, you will need to define these as well: # 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 priority = LOG_INFO # 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 facility = LOG_LOCAL3 ###################################################################### # GOPHER OBJECTS ###################################################################### # Settings for gopher objects [GopherEntry] # Use this MIME type if no other type is found. defaultmimetype = text/plain # 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. mapping = [['text/html', 'h'], ['text/.+', '0'], ['application/mac-binhex40', '4'], ['audio/.+', 's'], ['image/gif', 'g'], ['image/.+', 'I'], ['application/gopher-menu', '1'], ['application/gopher\+-menu', '1'], ['multipart/mixed', 'M'], ['application/.+', '9'], ['.*', '0'] ] # 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 "filename.txt.abstract" 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 = {'.abstract' : 'ABSTRACT', '.keywords' : 'KEYWORDS', '.ask' : 'ASK', '.3d' : '3D'} # # If you want to disable this capability, use this: # # eaexts = {} ###################################################################### # HANDLERS ###################################################################### ################################################## # Handler multiplexer ################################################## [handlers.HandlerMultiplexer] # 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't enable unless you know what you'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. # handlers = [url.HTMLURLHandler, gophermap.BuckGophermapHandler, mbox.MaildirFolderHandler, mbox.MaildirMessageHandler, UMN.UMNDirHandler, html.HTMLFileTitleHandler, mbox.MBoxMessageHandler, mbox.MBoxFolderHandler, file.FileHandler] # For full Pygopherd featureset including scripts and PYG. Same as # above but adds scripts, decompression, and PYG execution. #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] ################################################## # Decompressing file handler ################################################## [handlers.file.CompressedFileHandler] # 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. # We enable no decompressors by default... you'll need to do that. decompressors = {} #decompressors = {'bzip2': 'bzcat', # 'gzip' : 'zcat', # 'compress' : 'zcat'} # Regexp to match against filenames pending decompression. # The default will let ALL files be decompressed. decompresspatt = .* # You can be more restrictive: # decompresspatt = \.txt\.(bz2|gz|Z)$ ################################################## # Directory handler ################################################## [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'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$ 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$|~$ # Expiration time, in seconds, for the cache. # Set to 0 to disable caching entirely. cachetime = 180 # 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. cachefile = .cache.pygopherd.dir ################################################## # UMN Directory Handler ################################################## [handlers.UMN.UMNDirHandler] # 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'd get names Welcome and # pygopherd.tar.gz. If gzip IS a handled encoding, you'd get # Welcome and pygopherd. # # If extstrip is full, modify all modifyable names. Welcome.txt -> # Welcome and pygopherd.tar.gz -> pygopherd. # extstrip = none extstrip = nonencoded # extstrip = full [handlers.ZIP.ZIPHandler] ################################################## # ZIP file handler ################################################## # Even if it's listed in the available handlers, it's disabled here by # default. enabled = false pattern = \.zip$ ###################################################################### # PROTOCOLS ###################################################################### ################################################## # Protocol Multiplexer ################################################## [protocols.ProtocolMultiplexer] # A list of the protocols to consider for each request. # The protocols are tried in the order listed. protocols = [wap.WAPProtocol, http.HTTPProtocol, gopherp.GopherPlusProtocol, rfc1436.GopherProtocol] ################################################## # Gopher+ Protocol ################################################## [protocols.gopherp.GopherPlusProtocol] # The name and e-mail of the administrator admin = Unconfigured Pygopherd Admin ################################################## # HTTP Protocol ################################################## [protocols.http.HTTPProtocol] iconmapping = {'h' : 'text.gif', '0' : 'text.gif', '4' : 'binhex.gif', 's' : 'sound1.gif', 'g' : 'image3.gif', 'I' : 'image3.gif', 'M' : 'text.gif', '9' : 'binary.gif', '1' : 'folder.gif', '7' : 'folder.gif', 'i' : 'blank.gif'} # 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. # 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, try clicking here to see this page in Gopher directly. To find Gopher browsers, click here.
################################################## # WAP Protocol ################################################## [protocols.wap.WAPProtocol] # 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. waptop = /wap