Index: [Article Count Order] [Thread]

Date: Sat, 08 Mar 2003 22:47:43 +0900 (JST)
From: GOTOU Yuuzou <gotoyuzo@notwork.org>
Subject: [webrickja:75] Re: httpproxy.rbで上位proxyの設定
To: webrickja@notwork.org
Message-Id: <20030308.224743.128893179.gotoyuzo@kotetsu.does.notwork.org>
In-Reply-To: <20030308042236.B987.ZN@mbf.nifty.com>
References: <20030308042236.B987.ZN@mbf.nifty.com>
X-Mail-Count: 00075

In message <20030308042236.B987.ZN@mbf.nifty.com>,
 `Kazuhiro NISHIYAMA <zn@mbf.nifty.com>' wrote:
> CVS版のhttpproxy.rbにtypoがあったのでそれをなおして使って
> いるのですが、

うう。typo 多すぎる。

> 以下のような感じでDHCPで割り当てられた
> ネットワーク毎に上位のproxyを変更するというのは簡単に
> 対応できるのですが、URL毎にproxyを変えたいと思った場合に
> 同じ@configを使ってしまうので、同時アクセスがうまく
> 振り分けられないのではないかと思って困っています。

Proxy サーバを返すメソッドを定義して、そこで面倒を見るというの
を思い付きましたが、どうでしょう。

上流に対する Proxy Authentication にはまだ対応してませんが、
URI を返したほうがすっきりすると思うので、:ProxyHost と 
:ProxyPort はやめようかと思います。

retrieving revision 1.17
diff -u -p -r1.17 httpproxy.rb
--- lib/webrick/httpproxy.rb	7 Mar 2003 18:50:48 -0000	1.17
+++ lib/webrick/httpproxy.rb	8 Mar 2003 13:41:14 -0000
@@ -87,6 +87,10 @@ module WEBrick
       end
     end
 
+    def proxy_uri(req, res)
+      @config[:ProxyURI]
+    end
+
     def proxy_service(req, res)
       # Proxy Authentication
       proxy_auth(req, res)      
@@ -101,10 +105,15 @@ module WEBrick
       choose_header(req, header)
       set_via(header)
 
+      # select upstream proxy server
+      if proxy = proxy_uri(req, res)
+        proxy_host = proxy.host
+        proxy_port = proxy.port
+      end
+
       response = nil
       begin
-        http = Net::HTTP.new(uri.host, uri.port,
-                             @config[:ProxyHost], @config[:ProxyHost])
+        http = Net::HTTP.new(uri.host, uri.port, proxy.host, proxy.port)
         http.start{
           if @config[:ProxyTimeout]
             ##################################   these issues are 

-- 
ごとうゆうぞう