mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_service):
should delete trailing LF from the result of pack("m*"). * lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect): - should delete trailing LF from the result of pack("m*"). - clear Request-Line not to send the sesponse by HTTPServer#run. * lib/webrick/httputils (WEBrick::HTTPUtils.parse_qvalues): refine regexp (and change the name of a local variable). * lib/webrick/server.rb (WEBrick::Daemon.start): prepared stdio don't allow changing its mode. * test/webrick/*, sample/webrick/httpproxy.rb: add new files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fe1019c665
commit
36c839f233
14 changed files with 895 additions and 34 deletions
36
test/webrick/utils.rb
Normal file
36
test/webrick/utils.rb
Normal file
|
@ -0,0 +1,36 @@
|
|||
require "webrick"
|
||||
require "webrick/httpproxy"
|
||||
|
||||
module TestWEBrick
|
||||
NullWriter = Object.new
|
||||
def NullWriter.<<(msg)
|
||||
puts msg if $DEBUG
|
||||
return self
|
||||
end
|
||||
|
||||
module_function
|
||||
|
||||
def start_server(klass, config={}, &block)
|
||||
server = klass.new({
|
||||
:BindAddress => "127.0.0.1", :Port => 0,
|
||||
:Logger => WEBrick::Log.new(NullWriter),
|
||||
:AccessLog => [[NullWriter, ""]]
|
||||
}.update(config))
|
||||
begin
|
||||
thread = Thread.start{ server.start }
|
||||
addr = server.listeners[0].addr
|
||||
block.call([server, addr[3], addr[1]])
|
||||
ensure
|
||||
server.stop
|
||||
thread.join
|
||||
end
|
||||
end
|
||||
|
||||
def start_httpserver(config={}, &block)
|
||||
start_server(WEBrick::HTTPServer, config, &block)
|
||||
end
|
||||
|
||||
def start_httpproxy(config={}, &block)
|
||||
start_server(WEBrick::HTTPProxyServer, config, &block)
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue