Index: [Article Count Order] [Thread]

Date: Wed, 28 Jan 2004 20:38:43 +0900
From: "Kawaji, Shinya" <kawaji@hoppeta.com>
Subject: [webrickja:111] Re: ServerAlias
To: webrickja@notwork.org
Message-Id: <20040128203843#Ck'sf@hoppeta.com>
In-Reply-To: <20040128185958ZAZ#mQ@hoppeta.com>
References: <20040128185958ZAZ#mQ@hoppeta.com>
X-Mail-Count: 00111

かわじ、です。


すみません、

> +      :ServerAlias    => [],    # for Name-based Virtual Host.

って、デフォルトが Array である必要はなかったので、修正します。


Index: lib/webrick/config.rb
===================================================================
RCS file: /src/ruby/lib/webrick/config.rb,v
retrieving revision 1.2
diff -u -r1.2 config.rb
--- lib/webrick/config.rb       8 Sep 2003 09:52:33 -0000       1.2
+++ lib/webrick/config.rb       28 Jan 2004 11:37:50 -0000
@@ -37,6 +37,7 @@

     # for HTTPServer, HTTPRequest, HTTPResponse ...
     HTTP = General.dup.update(
+      :ServerAlias    => nil,   # nil or array of string/regexp
       :Port           => 80,
       :RequestTimeout => 30,
       :HTTPVersion    => HTTPVersion.new("1.1"),
Index: lib/webrick/httpserver.rb
===================================================================
RCS file: /src/ruby/lib/webrick/httpserver.rb,v
retrieving revision 1.6
diff -u -r1.6 httpserver.rb
--- lib/webrick/httpserver.rb   24 Jan 2004 16:48:52 -0000      1.6
+++ lib/webrick/httpserver.rb   28 Jan 2004 11:37:50 -0000
@@ -133,7 +133,10 @@
       @virtual_hosts.find{|server|
         (server[:Port].nil?        || req.port == server[:Port])           &&
         (server[:BindAddress].nil? || req.addr[3] == server[:BindAddress]) &&
-        (server[:ServerName].nil?  || req.host == server[:ServerName])
+        (
+          (server[:ServerName].nil?  || req.host == server[:ServerName]) ||
+          (server[:ServerAlias].nil? || server[:ServerAlias].find{|h| h === req.host })
+        )
       }
     end