File: webrick/config.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: WEBrick#17
  module: Config#18
has properties
constant: LIBDIR #19
constant: General #22
constant: HTTP #39
constant: FileHandler #67
constant: BasicAuth #78
constant: DigestAuth #82

Code

   1  #
   2  # config.rb -- Default configurations.
   3  #
   4  # Author: IPR -- Internet Programming with Ruby -- writers
   5  # Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
   6  # Copyright (c) 2003 Internet Programming with Ruby writers. All rights
   7  # reserved.
   8  #
   9  # $IPR: config.rb,v 1.52 2003/07/22 19:20:42 gotoyuzo Exp $
  10 
  11  require 'webrick/version'
  12  require 'webrick/httpversion'
  13  require 'webrick/httputils'
  14  require 'webrick/utils'
  15  require 'webrick/log'
  16 
  17  module WEBrick
  18    module Config
  19      LIBDIR = File::dirname(__FILE__)
  20 
  21      # for GenericServer
  22      General = {
  23        :ServerName     => Utils::getservername,
  24        :BindAddress    => nil,   # "0.0.0.0" or "::" or nil
  25        :Port           => nil,   # users MUST specifiy this!!
  26        :MaxClients     => 100,   # maximum number of the concurrent connections
  27        :ServerType     => nil,   # default: WEBrick::SimpleServer
  28        :Logger         => nil,   # default: WEBrick::Log.new
  29        :ServerSoftware => "WEBrick/#{WEBrick::VERSION} " +
  30                           "(Ruby/#{RUBY_VERSION}/#{RUBY_RELEASE_DATE})",
  31        :TempDir        => ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp',
  32        :DoNotListen    => false,
  33        :StartCallback  => nil,
  34        :StopCallback   => nil,
  35        :AcceptCallback => nil,
  36      }
  37 
  38      # for HTTPServer, HTTPRequest, HTTPResponse ...
  39      HTTP = General.dup.update(
  40        :Port           => 80,
  41        :RequestTimeout => 30,
  42        :HTTPVersion    => HTTPVersion.new("1.1"),
  43        :AccessLog      => nil,
  44        :MimeTypes      => HTTPUtils::DefaultMimeTypes,
  45        :DirectoryIndex => ["index.html","index.htm","index.cgi","index.rhtml"],
  46        :DocumentRoot   => nil,
  47        :DocumentRootOptions => { :FancyIndexing => true },
  48        :RequestHandler => nil,
  49        :RequestCallback => nil,  # alias of :RequestHandler
  50        :ServerAlias    => nil,
  51 
  52        # for HTTPProxyServer
  53        :ProxyAuthProc  => nil,
  54        :ProxyContentHandler => nil,
  55        :ProxyVia       => true,
  56        :ProxyTimeout   => true,
  57        :ProxyURI       => nil,
  58 
  59        :CGIInterpreter => nil,
  60        :CGIPathEnv     => nil,
  61 
  62        # workaround: if Request-URIs contain 8bit chars,
  63        # they should be escaped before calling of URI::parse().
  64        :Escape8bitURI  => false
  65      )
  66 
  67      FileHandler = {
  68        :NondisclosureName => [".ht*", "*~"],
  69        :FancyIndexing     => false,
  70        :HandlerTable      => {},
  71        :HandlerCallback   => nil,
  72        :DirectoryCallback => nil,
  73        :FileCallback      => nil,
  74        :UserDir           => nil,  # e.g. "public_html"
  75        :AcceptableLanguages => []  # ["en", "ja", ... ]
  76      }
  77 
  78      BasicAuth = {
  79        :AutoReloadUserDB     => true,
  80      }
  81 
  82      DigestAuth = {
  83        :Algorithm            => 'MD5-sess', # or 'MD5' 
  84        :Domain               => nil,        # an array includes domain names.
  85        :Qop                  => [ 'auth' ], # 'auth' or 'auth-int' or both.
  86        :UseOpaque            => true,
  87        :UseNextNonce         => false,
  88        :CheckNc              => false,
  89        :UseAuthenticationInfoHeader => true,
  90        :AutoReloadUserDB     => true,
  91        :NonceExpirePeriod    => 30*60,
  92        :NonceExpireDelta     => 60,
  93        :InternetExplorerHack => true,
  94        :OperaHack            => true,
  95      }
  96    end
  97  end