* lib/net/http.rb: HTTP.Proxy should use self for proxy-class's super class.
* lib/net/http.rb: initialize HTTP.proxy_port by HTTP.port.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
aamine 2002-02-07 20:22:39 +00:00
Родитель 96a172e701
Коммит ffc3c4b401
3 изменённых файлов: 64 добавлений и 45 удалений

Просмотреть файл

@ -1,3 +1,10 @@
Fri Feb 8 05:31:48 2002 Minero Aoki <aamine@loveruby.net>
* lib/net/http.rb: HTTP.Proxy should use self for proxy-class's
super class.
* lib/net/http.rb: initialize HTTP.proxy_port by HTTP.port.
Thu Feb 07 13:44:08 2002 akira yamada <akira@arika.org>
* uri/common.rb (URI::join): new method.

Просмотреть файл

@ -453,7 +453,32 @@ module Net
class HTTP < Protocol
HTTPVersion = '1.1'
#
# constructors
#
class << self
def start( address, port = nil, p_addr = nil, p_port = nil, &block )
new( address, port, p_addr, p_port ).start( &block )
end
alias newobj new
def new( address, port = nil, p_addr = nil, p_port = nil )
obj = Proxy(p_addr, p_port).newobj(address, port)
setimplversion obj
obj
end
end
def initialize( addr, port = nil )
super
@curr_http_version = HTTPVersion
@seems_1_0_server = false
end
#
# connection
@ -461,11 +486,7 @@ module Net
protocol_param :port, '80'
def initialize( addr, port = nil )
super
@curr_http_version = HTTPVersion
@seems_1_0_server = false
end
HTTPVersion = '1.1'
private
@ -506,26 +527,19 @@ module Net
public
class << self
def Proxy( p_addr, p_port = nil )
if p_addr then
ProxyMod.create_proxy_class( p_addr, p_port || self.port )
else
self
end
end
p_addr or return self
alias orig_new new
def new( address, port = nil, p_addr = nil, p_port = nil )
c = p_addr ? self::Proxy(p_addr, p_port) : self
i = c.orig_new( address, port )
setimplversion i
i
end
def start( address, port = nil, p_addr = nil, p_port = nil, &block )
new( address, port, p_addr, p_port ).start( &block )
p_port ||= port()
mod = ProxyDelta
proxyclass = Class.new(self)
proxyclass.module_eval {
include mod
@is_proxy_class = true
@proxy_address = p_addr
@proxy_port = p_port
}
proxyclass
end
@is_proxy_class = false
@ -538,7 +552,6 @@ module Net
attr_reader :proxy_address
attr_reader :proxy_port
end
def proxy?
@ -556,40 +569,39 @@ module Net
alias proxyaddr proxy_address
alias proxyport proxy_port
private
# without proxy
def conn_address
address
end
def conn_port
port
end
def edit_path( path )
path
end
module ProxyMod
def self.create_proxy_class( p_addr, p_port )
mod = self
klass = Class.new( HTTP )
klass.module_eval {
include mod
@is_proxy_class = true
@proxy_address = p_addr
@proxy_port = p_port
}
klass
end
module ProxyDelta
private
# with proxy
def conn_address
proxy_address()
proxy_address
end
def conn_port
proxy_port()
proxy_port
end
def edit_path( path )
'http://' + addr_port() + path
end
end # module ProxyMod
end
#

Просмотреть файл

@ -601,7 +601,7 @@ module Net
BLOCK_SIZE = 1024 * 2
def rbuf_fill
unless IO.select [@socket], nil, nil, @read_timeout then
until IO.select [@socket], nil, nil, @read_timeout do
on_read_timeout
end
@rbuf << @socket.sysread(BLOCK_SIZE)