#
# WWWOFFLE - World Wide Web Offline Explorer - Version 2.3.
#
# WWWOFFLE Configuration file /usr/local/etc/wwwoffle.conf
#
# Derived from the example configuration file written by Andrew M. Bishop
#
# WWWOFFLE and example configuration file Copyright 1997,98 Andrew M. Bishop
# They may be distributed under the GNU Public License, version 2, or
# any higher version.  See section COPYING of the GNU Public license
# for conditions under which this file may be redistributed.
#


#
# Lines beginning with a '#' are comments and ignored.
#


#
# Program startup configuration.
#
# This can not be changed without restarting the program.
#
# Header : StartUp
# Options: http-port         = <integer>
#               The port number to use for the proxy http server (default=8080).
#        : wwwoffle-port     = <integer>
#               The port number to use for wwwoffle control (default=8081).
#        : spool-dir         = <directory name>
#               The directory to use as the spool directory
#               (default=/var/spool/wwwoffle).
#        : run-uid           = <username> | <uid>
#               The username or numeric uid to run the wwwoffled server as
#               (default=none).
#        : run-gid           = <groupname> | <gid>
#               The groupname or numeric gid to run the wwwoffled server as
#               (default=none).
#        : use-syslog        = yes | no
#               If true then log all important messages using syslog
#               (default=yes).
#        : password          = <word> | none |
#               The authorisation password for demon configuration by wwwoffle
#               (default=none).
#        : max-servers       = <integer>
#               The maximum number of server processes that are ever started,
#               must be less than MAX_SERVERS (=64) (default=8).
#        : max-fetch-servers = <integer>
#               The maximum number of server processes that are started to
#               fetch pages that were requested in offline mode, must be less
#               than MAX_FETCH_SERVERS (=48). (default=4).
#
# Notes 1: For the password to work the configuration file must be set so that
#          only authorised users can read it.
#       2: To use the run-uid/run-gid options, the server must start as root.
#       3: The max-fetch-servers value must be less than max-servers or you will
#          not be able to use wwwoffle interactively online while fetching.
#

StartUp
{
 http-port         = 8080
 wwwoffle-port     = 8081

 spool-dir         = /usr/local/wwwoffle

#run-uid           = daemon
#run-gid           = daemon

 use-syslog        = yes

 password          = none

 max-servers       = 8
 max-fetch-servers = 4
}


#
# Other configuration options.
#
# Header : Options
# Options: log-level         = debug | info | important | warning | fatal
#               Log messages with this or higher priority (default=important).
#          index-latest-days = <age>
#               The age in days of pages to show in the index of latest pages
#               (default=7).
#          add-info-refresh  = yes | no
#               The option to add a tag at the bottom of spooled pages giving
#               the date it was cached and a refresh button (default=no).
#          request-changed   = <time>
#               While online pages will only be fetched if the cached version
#               is older than this specified time in seconds (default=600).
#          pragma-no-cache   = yes | no
#               Whether to request a new copy of a page if the request has
#               'Pragma: no-cache' (default=yes).
#          offline-requests  = yes | no
#               Whether to record requests that are made while offline or to
#               return an error (default=yes).
#          confirm-requests  = yes | no
#               Whether to return a page requiring user confirmation instead of
#               automatically recording requests made while offline
#               (default=no).
#          monitor-interval  = <age>
#               The default interval in days between monitoring of the specified
#               URLs if not otherwise specified (default=7 days).
#          socket-timeout    = <time>
#               The time in seconds that wwwoffle will wait for data before
#               giving up on a socket connection (default=120).
#          connect-retry     = yes | no
#               If a connection cannot be made to a remote server
#               then try again after a short delay (default=no).
#
#  Notes 1: The request-changed option can be set negative to indicate that
#           cached pages are always used while online.
#        2: The pragma-no-cache option should be set to 'no' if when browsing
#           offline all pages are re-requested by a 'broken' browser.
#        3: The monitor-interval option when set to '0' means to check each time
#           wwwoffle is online, '1' means once per day, etc.
#

Options
{
 log-level         = important

 index-latest-days = 7

 add-info-refresh  = yes

 request-changed   = 1800

 pragma-no-cache   = yes

 offline-requests  = yes
 confirm-requests  = no

 monitor-interval  = 7

 socket-timeout    = 120

 connect-retry     = no
}


#
# Automatic Fetch options.
#
# Header : FetchOptions
# Options: stylesheets = yes | no
#               If style sheets are to be fetched.
#          images       = yes | no
#               If images are to be fetched.
#          frames       = yes | no
#               If frames are to be fetched.
#          scripts      = yes | no
#               If scripts are to be fetched.
#          objects      = yes | no
#               If objects (e.g. Java class files ) are to be fetched.
#
#  Notes 1: These options all default to 'no' if nothing is specified.
#

FetchOptions
{
 stylesheets = yes

 images      = yes

 frames      = yes

 scripts     = yes

 objects     = yes
}


#
# wwwoffle server host name specification.
#
# The possible names that the server that wwwoffles is on may be known by.
#
# Header : LocalHost
# Options: <host>
#               One of the possible hostnames or IP addresses.
#
# Notes 1: All entries in here are also used the same way as those in the
#          LocalNet and AllowedConnect sections.
#       2: The first named host is used as the server name for several features
#          so must be a name that will work from any client host on the network.
#       3: None of the entries here or in LocalNet are fetched via a proxy.
#

LocalHost
{
 localhost
 127.0.0.1

#### Example ####
# The server is on www.foo.com, with IP address 11.22.33.44.
# www.foo.com
# 11.22.33.44
}


#
# Local Network non-cached host name specification
#
# The names of hosts that are not cached because they are on the local network.
#
# Header : LocalNet
# Options: <host>
#               A hostname or IP address.
#
# Notes 1: The hostname matches from the right so that 'foo.com' here matches
#          'www.bar.foo.com' and 'www.foo.com' etc, IP addresses from the left.
#       2: All entries here are assumed to be reachable even when offline.
#       3: All entries in the LocalHost section are used as if they were here.
#       4: None of the entries here or in LocalHost are fetched via a proxy.
#

LocalNet
{

#### Example ####
# The local domain is foo.com so don't cache any hosts in it.
# foo.com
}


#
# Allowed client host name specification
#
# The names of client hosts that are allowed to connect to the server.
#
# Header : AllowedConnect
# Options: <host>
#               A hostname or IP address.
#
# Notes 1: The hostname matches from the right so that 'foo.com' here matches
#          'www.bar.foo.com' and 'www.foo.com' etc, IP addresses from the left.
#       2: All entries in the LocalHost section are used as if they were here.
#

AllowedConnect
{

#### Example ####
# Only allow connections from hosts in the foo.com domain.
# foo.com
}


#
# A list of ways of recognising a URL not to cache.
#
# Header : DontCache
# Options: URL-SPECIFICATION
#               Do not cache any URLs that match this.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: The URL will still be cached if fetched non-interactively.
#

DontCache
{

#### Example ####
# Don't cache any hosts in the barfoo.com domain.
# *://barfoo.com/
# Don't cache any gzipped or tar files.
# *://*/*.gz
# *://*/*.tar
# Don't cache any files from /volatile in the foo.com domain.
# *://foo.com/volatile
}


#
# A list of ways of recognising a URL not to get.
#
# Header : DontGet
# Options: URL-SPECIFICATION
#               Do not get any URLs that match this.
#          replacement = <URL>
#               Replace any URLs that match with this URL instead of the
#               standard error message (default=none).
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: The URL /local/images/trans-1x1.gif is a suggested replacement
#          (a 1x1 pixel transparent gif).
#

DontGet
{

#replacement = /local/images/trans-1x1.gif

#### Example ####
# Don't get from any hosts in the barfoo.com domain.
# *://barfoo.com/
# Don't get any gzipped or tar files.
# *://*/*.gz
# *://*/*.tar
# Don't get any files from /adverts in the foo.com domain.
# *://foo.com/adverts
}


#
# A list of ways of recognising a URL not to get when fetching recursively.
#
# Header : DontGetRecursive
# Options: URL-SPECIFICATION
#               Do not get any URLs that match this.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#

DontGetRecursive
{
 http://www.jp.freebsd.org/~ryuchi/QandA/JIS/all.txt

#### Example ####
# Dont get any gzipped or tar files when getting recursively.
# *://*/*.gz
# *://*/*.tar
}


#
# Censorship of information sent to the server
#
# A list of HTTP header lines that are to be removed from the requests sent.
# Or fake headers that are to be used instead.
#
# Header : CensorHeader
# Options: <header> = <string> | none |
#               A header field name, (e.g. From, Cookie, User-Agent) and the
#               string to replace the string sent by the browser.
#
# Notes 1: The header is case sensitive, and does not have a ':' at the end.
#       2: The value of none or no string can be used to not send the header.
#       3: This only replaces headers it finds, it does not add any new ones.
#

CensorHeader
{

### Example ###
# Don't send the username.
# From =
# Don't send Cookies back
# Cookie =
# Lie about the Browser type.
# User-Agent = WWWOFFLE/2.2
}


#
# Options to use when fetching files using ftp.
#
# Header : FTPOptions
# Options: anon-username = <string>
#               The username to use for anonymous ftp (default=anonymous).
#          anon-password = <string>
#               The password to use for anonymous ftp (default=<user>@<host>).
#          auth-hostname = <host[:port]>
#               A host to use a different username and password.
#          auth-username = <string>
#               The username to use on the above host.
#          auth-password = <string>
#               The password to use on the above host.
#
# Notes 1: The anon-password should be set to a sensible value especially if you
#          are behind a firewall.
#       2: The auth-hostname, auth-username and auth-password options must come
#          together as a triplet.
#       3: The auth-hostname must be exact, it is not used as a wildcard match.
#

FTPOptions
{
 anon-username = anonymous
#anon-password = 

}


#
# MIME Types to use when fetching files not using HTTP.
#
# Header : MIMETypes
# Options: default     = <mime-type>/<subtype>
#               The default MIME type (default=text/plain).
#          .<file-ext> = <mime-type>/<subtype>
#               The MIME type to associate with a file extension.
#
# Notes 1: You must include the '.' in the file extension.
#       2: If more than one of the extensions match then the longest is used.
#

MIMETypes
{
 default  = text/plain

 .pdf     = application/pdf
 .eps     = application/postscript
 .ps      = application/postscript
 .rtf     = application/rtf
 .dvi     = application/x-dvi
 .latex   = application/x-latex
 .tcl     = application/x-tcl
 .tex     = application/x-tex
 .texinfo = application/x-texinfo
 .texi    = application/x-texinfo
 .tr      = application/x-troff
 .man     = application/x-troff-man
 .me      = application/x-troff-me
 .ms      = application/x-troff-ms
 .zip     = application/zip
 .cpio    = application/x-cpio
 .tar     = application/x-tar
 .Z       = application/x-compress
 .gz      = application/x-gzip
 .js      = application/x-javascript
 .au      = audio/basic
 .snd     = audio/basic
 .wav     = audio/x-wav
 .gif     = image/gif
 .jpeg    = image/jpeg
 .jpg     = image/jpeg
 .tif     = image/tiff
 .tiff    = image/tiff
 .ras     = image/x-cmu-raster
 .pnm     = image/x-portable-anymap
 .pbm     = image/x-portable-bitmap
 .pgm     = image/x-portable-graymap
 .ppm     = image/x-portable-pixmap
 .rgb     = image/x-rgb
 .xbm     = image/x-xbitmap
 .xpm     = image/x-xpixmap
 .xwd     = image/x-xwindowdump
 .html    = text/html
 .txt     = text/plain
 .mpeg    = video/mpeg
 .mpg     = video/mpeg
 .mov     = video/quicktime
 .avi     = video/x-msvideo
 .pac     = application/x-ns-proxy-autoconfig
}


#
# Remote proxy configuration.
#
# The name and port number of machines to use as proxies.
#
# Header : Proxy
# Options: default            = <hostname[:integer]> | none |
#               The hostname (+ optionally a port number separated by a colon)
#               to use as the default proxy.
#          URL-SPECIFICATION  = <hostname[:integer]> | none |
#               The hostname (+ optionally a port number separated by a colon)
#               to use as the proxy for URLs that match URL-SPECIFICATION.
#          auth-hostname = <host[:port]>
#               A proxy server that uses proxy authentication.
#          auth-username = <string>
#               The username to use on the above host.
#          auth-password = <string>
#               The password to use on the above host.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: A hostname that matches more than one entry here uses the proxy of
#          the longest matching one (protocol is included in assessing length).
#       3: Leave the hostname empty or use 'none' for no proxy.
#       4: None of the hosts in LocalNet/LocalHost will be fetched via a proxy.
#       5: The auth-hostname, auth-username and auth-password options must come
#          together as a triplet.
#       6: The auth-hostname must be exact, it is not used as a wildcard match.
#

Proxy
{
 http://* = none

#### Example ####
# Use www.foo.com as a default http proxy server on port 8080
# Except for the foo.com domain which has no proxy.
# http://*    = www.foo.com:8080
# *://foo.com = none
}


#
# A list of ways of recognising a URL not to display in the index.
#
# Header : DontIndex
# Options: URL-SPECIFICATION
#               Do not index any URLs that match this.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#

DontIndex
{

#### Example ####
# Don't index any hosts in the barfoo.com domain.
# *://barfoo.com/
# Don't index any gif or jpg files.
# *://*/*.gif
# *://*/*.jpg
}


#
# Aliases specification
#
# A list of aliases that are used to replace the server name and path with
# another server name and path.  Also for servers known by two names.
#
# Header : Alias
# Options: URL-SPECIFICATION = URL-SPECIFICATION
#               Any requests for the first URL-SPECIFICATION are replaced by the
#               second URL-SPECIFICATION.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: Symbolic links in the spool directory also work, but they are only
#          checked when wwwoffled is started or 'wwwoffle -config' is run.
#       3: The host names must match exactly, no wildcards.
#

Alias
{

#### Example ####
# The http server www.bar.com is mirrored locally at www.bar-mirror.foo.com
# http://www.bar.com/ = http://www.bar-mirror.foo.com/
# The wwwoffle homepage can be aliased
# http://wwwoffle/ = http://www.gedanken.demon.co.uk/wwwoffle/
}


#
# Purge method and maximum ages specification.
#
# The method to determine which pages to purge, the default age, the host
# specific maximum age of the pages in days, and the maximum cache size.
#
# Header : Purge
# Options: use-mtime          = yes | no
#               The decision of which pages to purge can be made on last access
#               time (atime) or last modification time (mtime) (default=no).
#          max-size           = <integer>
#               The maximum allowed size of the cache in MB (default=0).
#          use-url            = yes | no
#               If true then use the URL to decide on the purge age, otherwise
#               use the protocol and host only (default=no).
#          del-dontget        = yes | no
#               If true then delete the files from hosts that are in the DontGet
#               section (default=no).
#          del-dontcache      = yes | no
#               If true then delete the files from hosts that are in the
#               DontCache section (default=no).
#          default            = <integer>
#               The default maximum age for pages on hosts (default=14).
#          URL-SPECIFICATION  = <integer>
#               The maximum age for pages on hosts that match the
#               URL-SPECIFICATION.
#
# Notes 1: See the bottom of this file for the description of URL-SPECIFICATION
#       2: A hostname that matches more than one entry here uses the age of the
#          longest matching one (the protocol is counted in assessing length).
#       3: A zero age means always delete on purge, negative means never purge.
#       4: A maximum cache size of 0 means there is no limit to the size.
#       5: When there is a non-zero maximum cache size it is measured excluding
#          all hosts with a negative maximum age (never purged hosts).
#       6: The URL-SPECIFICATION matches only the protocol and host unless
#          use-url is set to true.
#

Purge
{
 use-mtime     = no

 max-size      = 0

 use-url       = no

 del-dontget   = no
 del-dontcache = no

 default       = 28

#### Example ####
# Expire hosts in the domain foo.com at 1 week except bar.foo.com at 2 weeks.
# *://foo.com/ = 7
# *://bar.foo.com/ = 14
# Never keep anything in the domain bar.com except foo.bar.com is always kept.
# *://bar.com/ = 0
# *://foo.bar.com/ = -1
#
# Keep ftp files for 7 days and http for 14.
# ftp://* = 7
# http://* = 14
#
# Purge files to keep the cache below 10 MB
# max-size = 10
}


#
# URL-SPECIFICATION
# -----------------
#
# When specifying a host and protocol and pathname in many of the sections a
# URL-SPECIFICATION can be used, this is a way of recognising a URL.
#
# For the purposes of this explanation a URL is considered to be made up of five
# parts.
#
# proto           The protocol that is used (e.g. 'http', 'ftp')
# host            The server hostname (e.g. 'www.gedanken.demon.co.uk').
# port            The port number on the host (e.g. default of 80 for HTTP).
# path            The pathname on the host (e.g. '/bar.html') or a directory name
#                 (e.g. '/foo/').
# ext             The file extension (e.g. '.html').
#
# For example the wwwoffle homepage: http://www.gedanken.demon.co.uk/wwwoffle/
# The protocol is 'http', the host is 'www.gedanken.demon.co.uk', the port is
# the default (in this case 80), the pathname is '/wwwoffle/' and there is no
# file extension.
#
# In general this is written as <proto>://<host>[:<port>]/<path>[*.<ext>]
#
# Where [] indicates an optional feature, and <> indicate a user supplied name
# or number.
#
# Some common URL-SPECIFICATION options are the following:
#
# *://*                   Any protocol, Any host, Any port, Any path, Any ext
#                         (This is that same as saying 'default').
#
# *://*/<path>            Any protocol, Any host, Any port, Named path, Any ext
#
# *://*/*.<ext>           Any protocol, Any host, Any port, Any path, Named ext
#
# *://<host>              Any protocol, Named host, Any port, Any path, Any ext
#
# <proto>://              Named protocol, Any host, Any port, Any path, Any ext
#
# <proto>://<host>        Named protocol, Named host, Any port, Any path,ext
#
# <proto>://<host>:       Named protocol, Named host, Default port, Any path,ext
#
# <proto>://<host>:<port> Named protocol, Named host, Named port, Any path,ext
#
#
# If you want the protocol or host to match any possibility then use a '*'.
# This is the only place that a '*' can be used apart from specifying a file
# extension.
#
# The hostname matching in all of these cases will match an exact hostname
# (e.g. 'www.gedanken.demon.co.uk'), a domain name (e.g. 'demon.co.uk') an IP
# address (e.g. '1.2.3.4') or a subnet (e.g. '1.2.3').
#
# The pathname will match exactly or any sub-directory.
#
# The file extension matches from the right.
#
