webrick 1.3.1 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of webrick might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +22 -0
- data/README.md +63 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/webrick.rb +7 -7
- data/lib/webrick/accesslog.rb +12 -6
- data/lib/webrick/cgi.rb +58 -5
- data/lib/webrick/compat.rb +2 -1
- data/lib/webrick/config.rb +47 -10
- data/lib/webrick/cookie.rb +69 -7
- data/lib/webrick/htmlutils.rb +4 -2
- data/lib/webrick/httpauth.rb +6 -5
- data/lib/webrick/httpauth/authenticator.rb +13 -8
- data/lib/webrick/httpauth/basicauth.rb +16 -8
- data/lib/webrick/httpauth/digestauth.rb +35 -32
- data/lib/webrick/httpauth/htdigest.rb +12 -8
- data/lib/webrick/httpauth/htgroup.rb +10 -6
- data/lib/webrick/httpauth/htpasswd.rb +46 -9
- data/lib/webrick/httpauth/userdb.rb +1 -0
- data/lib/webrick/httpproxy.rb +93 -48
- data/lib/webrick/httprequest.rb +201 -31
- data/lib/webrick/httpresponse.rb +235 -70
- data/lib/webrick/https.rb +90 -2
- data/lib/webrick/httpserver.rb +45 -15
- data/lib/webrick/httpservlet.rb +6 -5
- data/lib/webrick/httpservlet/abstract.rb +5 -6
- data/lib/webrick/httpservlet/cgi_runner.rb +3 -2
- data/lib/webrick/httpservlet/cgihandler.rb +29 -11
- data/lib/webrick/httpservlet/erbhandler.rb +4 -3
- data/lib/webrick/httpservlet/filehandler.rb +136 -65
- data/lib/webrick/httpservlet/prochandler.rb +15 -1
- data/lib/webrick/httpstatus.rb +24 -14
- data/lib/webrick/httputils.rb +134 -17
- data/lib/webrick/httpversion.rb +28 -1
- data/lib/webrick/log.rb +25 -5
- data/lib/webrick/server.rb +234 -74
- data/lib/webrick/ssl.rb +100 -12
- data/lib/webrick/utils.rb +98 -69
- data/lib/webrick/version.rb +6 -1
- data/webrick.gemspec +76 -0
- metadata +73 -72
- data/README.txt +0 -21
- data/sample/webrick/demo-app.rb +0 -66
- data/sample/webrick/demo-multipart.cgi +0 -12
- data/sample/webrick/demo-servlet.rb +0 -6
- data/sample/webrick/demo-urlencoded.cgi +0 -12
- data/sample/webrick/hello.cgi +0 -11
- data/sample/webrick/hello.rb +0 -8
- data/sample/webrick/httpd.rb +0 -23
- data/sample/webrick/httpproxy.rb +0 -25
- data/sample/webrick/httpsd.rb +0 -33
- data/test/openssl/utils.rb +0 -313
- data/test/ruby/envutil.rb +0 -208
- data/test/webrick/test_cgi.rb +0 -134
- data/test/webrick/test_cookie.rb +0 -131
- data/test/webrick/test_filehandler.rb +0 -285
- data/test/webrick/test_httpauth.rb +0 -167
- data/test/webrick/test_httpproxy.rb +0 -282
- data/test/webrick/test_httprequest.rb +0 -411
- data/test/webrick/test_httpresponse.rb +0 -49
- data/test/webrick/test_httpserver.rb +0 -305
- data/test/webrick/test_httputils.rb +0 -96
- data/test/webrick/test_httpversion.rb +0 -40
- data/test/webrick/test_server.rb +0 -67
- data/test/webrick/test_utils.rb +0 -64
- data/test/webrick/utils.rb +0 -58
- data/test/webrick/webrick.cgi +0 -36
- data/test/webrick/webrick_long_filename.cgi +0 -36
data/webrick.gemspec
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
begin
|
3
|
+
require_relative 'lib/webrick/version'
|
4
|
+
rescue LoadError
|
5
|
+
# for Ruby core repository
|
6
|
+
require_relative 'version'
|
7
|
+
end
|
8
|
+
|
9
|
+
Gem::Specification.new do |s|
|
10
|
+
s.name = "webrick"
|
11
|
+
s.version = WEBrick::VERSION
|
12
|
+
s.summary = "HTTP server toolkit"
|
13
|
+
s.description = "WEBrick is an HTTP server toolkit that can be configured as an HTTPS server, a proxy server, and a virtual-host server."
|
14
|
+
|
15
|
+
s.require_path = %w{lib}
|
16
|
+
s.files = [
|
17
|
+
"Gemfile",
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.md",
|
20
|
+
"Rakefile",
|
21
|
+
"bin/console",
|
22
|
+
"bin/setup",
|
23
|
+
"lib/webrick.rb",
|
24
|
+
"lib/webrick/accesslog.rb",
|
25
|
+
"lib/webrick/cgi.rb",
|
26
|
+
"lib/webrick/compat.rb",
|
27
|
+
"lib/webrick/config.rb",
|
28
|
+
"lib/webrick/cookie.rb",
|
29
|
+
"lib/webrick/htmlutils.rb",
|
30
|
+
"lib/webrick/httpauth.rb",
|
31
|
+
"lib/webrick/httpauth/authenticator.rb",
|
32
|
+
"lib/webrick/httpauth/basicauth.rb",
|
33
|
+
"lib/webrick/httpauth/digestauth.rb",
|
34
|
+
"lib/webrick/httpauth/htdigest.rb",
|
35
|
+
"lib/webrick/httpauth/htgroup.rb",
|
36
|
+
"lib/webrick/httpauth/htpasswd.rb",
|
37
|
+
"lib/webrick/httpauth/userdb.rb",
|
38
|
+
"lib/webrick/httpproxy.rb",
|
39
|
+
"lib/webrick/httprequest.rb",
|
40
|
+
"lib/webrick/httpresponse.rb",
|
41
|
+
"lib/webrick/https.rb",
|
42
|
+
"lib/webrick/httpserver.rb",
|
43
|
+
"lib/webrick/httpservlet.rb",
|
44
|
+
"lib/webrick/httpservlet/abstract.rb",
|
45
|
+
"lib/webrick/httpservlet/cgi_runner.rb",
|
46
|
+
"lib/webrick/httpservlet/cgihandler.rb",
|
47
|
+
"lib/webrick/httpservlet/erbhandler.rb",
|
48
|
+
"lib/webrick/httpservlet/filehandler.rb",
|
49
|
+
"lib/webrick/httpservlet/prochandler.rb",
|
50
|
+
"lib/webrick/httpstatus.rb",
|
51
|
+
"lib/webrick/httputils.rb",
|
52
|
+
"lib/webrick/httpversion.rb",
|
53
|
+
"lib/webrick/log.rb",
|
54
|
+
"lib/webrick/server.rb",
|
55
|
+
"lib/webrick/ssl.rb",
|
56
|
+
"lib/webrick/utils.rb",
|
57
|
+
"lib/webrick/version.rb",
|
58
|
+
"webrick.gemspec",
|
59
|
+
]
|
60
|
+
s.required_ruby_version = ">= 2.3.0"
|
61
|
+
|
62
|
+
s.authors = ["TAKAHASHI Masayoshi", "GOTOU YUUZOU", "Eric Wong"]
|
63
|
+
s.email = [nil, nil, 'normal@ruby-lang.org']
|
64
|
+
s.homepage = "https://www.ruby-lang.org"
|
65
|
+
s.license = "BSD-2-Clause"
|
66
|
+
|
67
|
+
if s.respond_to?(:metadata=)
|
68
|
+
s.metadata = {
|
69
|
+
"bug_tracker_uri" => "https://bugs.ruby-lang.org/projects/ruby-trunk/issues",
|
70
|
+
"homepage_uri" => "https://www.ruby-lang.org",
|
71
|
+
"source_code_uri" => "https://git.ruby-lang.org/ruby.git/"
|
72
|
+
}
|
73
|
+
end
|
74
|
+
|
75
|
+
s.add_development_dependency "rake"
|
76
|
+
end
|
metadata
CHANGED
@@ -1,106 +1,107 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webrick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.6.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
-
|
9
|
-
|
7
|
+
- TAKAHASHI Masayoshi
|
8
|
+
- GOTOU YUUZOU
|
9
|
+
- Eric Wong
|
10
|
+
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
15
|
-
|
13
|
+
date: 2020-09-29 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
29
|
+
description: WEBrick is an HTTP server toolkit that can be configured as an HTTPS
|
30
|
+
server, a proxy server, and a virtual-host server.
|
31
|
+
email:
|
32
|
+
-
|
33
|
+
-
|
34
|
+
- normal@ruby-lang.org
|
16
35
|
executables: []
|
17
36
|
extensions: []
|
18
37
|
extra_rdoc_files: []
|
19
38
|
files:
|
20
|
-
-
|
21
|
-
-
|
22
|
-
-
|
23
|
-
-
|
24
|
-
-
|
25
|
-
-
|
26
|
-
- lib/webrick
|
27
|
-
- lib/webrick/compat.rb
|
28
|
-
- lib/webrick/httpresponse.rb
|
39
|
+
- Gemfile
|
40
|
+
- LICENSE.txt
|
41
|
+
- README.md
|
42
|
+
- Rakefile
|
43
|
+
- bin/console
|
44
|
+
- bin/setup
|
45
|
+
- lib/webrick.rb
|
29
46
|
- lib/webrick/accesslog.rb
|
30
|
-
- lib/webrick/httpversion.rb
|
31
|
-
- lib/webrick/utils.rb
|
32
|
-
- lib/webrick/version.rb
|
33
|
-
- lib/webrick/httprequest.rb
|
34
|
-
- lib/webrick/httpauth.rb
|
35
|
-
- lib/webrick/server.rb
|
36
|
-
- lib/webrick/httpproxy.rb
|
37
|
-
- lib/webrick/ssl.rb
|
38
47
|
- lib/webrick/cgi.rb
|
39
|
-
- lib/webrick/
|
40
|
-
- lib/webrick/
|
41
|
-
- lib/webrick/httpserver.rb
|
48
|
+
- lib/webrick/compat.rb
|
49
|
+
- lib/webrick/config.rb
|
42
50
|
- lib/webrick/cookie.rb
|
43
|
-
- lib/webrick/
|
51
|
+
- lib/webrick/htmlutils.rb
|
52
|
+
- lib/webrick/httpauth.rb
|
53
|
+
- lib/webrick/httpauth/authenticator.rb
|
44
54
|
- lib/webrick/httpauth/basicauth.rb
|
45
55
|
- lib/webrick/httpauth/digestauth.rb
|
46
|
-
- lib/webrick/httpauth/authenticator.rb
|
47
56
|
- lib/webrick/httpauth/htdigest.rb
|
48
57
|
- lib/webrick/httpauth/htgroup.rb
|
49
58
|
- lib/webrick/httpauth/htpasswd.rb
|
50
59
|
- lib/webrick/httpauth/userdb.rb
|
51
|
-
- lib/webrick/
|
60
|
+
- lib/webrick/httpproxy.rb
|
61
|
+
- lib/webrick/httprequest.rb
|
62
|
+
- lib/webrick/httpresponse.rb
|
63
|
+
- lib/webrick/https.rb
|
64
|
+
- lib/webrick/httpserver.rb
|
52
65
|
- lib/webrick/httpservlet.rb
|
66
|
+
- lib/webrick/httpservlet/abstract.rb
|
67
|
+
- lib/webrick/httpservlet/cgi_runner.rb
|
68
|
+
- lib/webrick/httpservlet/cgihandler.rb
|
69
|
+
- lib/webrick/httpservlet/erbhandler.rb
|
70
|
+
- lib/webrick/httpservlet/filehandler.rb
|
71
|
+
- lib/webrick/httpservlet/prochandler.rb
|
72
|
+
- lib/webrick/httpstatus.rb
|
73
|
+
- lib/webrick/httputils.rb
|
74
|
+
- lib/webrick/httpversion.rb
|
53
75
|
- lib/webrick/log.rb
|
54
|
-
- lib/webrick.rb
|
55
|
-
-
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
|
60
|
-
|
61
|
-
-
|
62
|
-
|
63
|
-
-
|
64
|
-
|
65
|
-
-
|
66
|
-
|
67
|
-
- test/webrick/test_cookie.rb
|
68
|
-
- test/webrick/test_server.rb
|
69
|
-
- test/webrick/test_httpresponse.rb
|
70
|
-
- test/webrick/test_utils.rb
|
71
|
-
- test/webrick/test_httpserver.rb
|
72
|
-
- test/webrick/test_httprequest.rb
|
73
|
-
- test/webrick/test_httpversion.rb
|
74
|
-
- test/webrick/webrick.cgi
|
75
|
-
- test/webrick/test_httpauth.rb
|
76
|
-
- test/webrick/test_cgi.rb
|
77
|
-
- test/webrick/test_httputils.rb
|
78
|
-
- test/webrick/test_filehandler.rb
|
79
|
-
- test/ruby/envutil.rb
|
80
|
-
- test/openssl/utils.rb
|
81
|
-
- README.txt
|
82
|
-
homepage: http://github.com/nahi/webrick
|
83
|
-
licenses: []
|
84
|
-
post_install_message:
|
76
|
+
- lib/webrick/server.rb
|
77
|
+
- lib/webrick/ssl.rb
|
78
|
+
- lib/webrick/utils.rb
|
79
|
+
- lib/webrick/version.rb
|
80
|
+
- webrick.gemspec
|
81
|
+
homepage: https://www.ruby-lang.org
|
82
|
+
licenses:
|
83
|
+
- BSD-2-Clause
|
84
|
+
metadata:
|
85
|
+
bug_tracker_uri: https://bugs.ruby-lang.org/projects/ruby-trunk/issues
|
86
|
+
homepage_uri: https://www.ruby-lang.org
|
87
|
+
source_code_uri: https://git.ruby-lang.org/ruby.git/
|
88
|
+
post_install_message:
|
85
89
|
rdoc_options: []
|
86
90
|
require_paths:
|
87
91
|
- lib
|
88
92
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
|
-
- -
|
94
|
+
- - ">="
|
92
95
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
96
|
+
version: 2.3.0
|
94
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
98
|
requirements:
|
97
|
-
- -
|
99
|
+
- - ">="
|
98
100
|
- !ruby/object:Gem::Version
|
99
101
|
version: '0'
|
100
102
|
requirements: []
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
summary: WEBrick is an HTTP server toolkit that can be configured as an HTTPS server,
|
103
|
+
rubygems_version: 3.2.0.rc.1
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: HTTP server toolkit
|
106
107
|
test_files: []
|
data/README.txt
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
= WEB server toolkit.
|
2
|
-
|
3
|
-
WEBrick is an HTTP server toolkit that can be configured as an HTTPS server,
|
4
|
-
a proxy server, and a virtual-host server. WEBrick features complete
|
5
|
-
logging of both server operations and HTTP access. WEBrick supports both
|
6
|
-
basic and digest authentication in addition to algorithms not in RFC 2617.
|
7
|
-
|
8
|
-
A WEBrick servers can be composed of multiple WEBrick servers or servlets to
|
9
|
-
provide differing behavior on a per-host or per-path basis. WEBrick
|
10
|
-
includes servlets for handling CGI scripts, ERb pages, ruby blocks and
|
11
|
-
directory listings.
|
12
|
-
|
13
|
-
WEBrick also includes tools for daemonizing a process and starting a process
|
14
|
-
at a higher privilege level and dropping permissions.
|
15
|
-
|
16
|
-
== Copyright
|
17
|
-
|
18
|
-
Author: IPR -- Internet Programming with Ruby -- writers
|
19
|
-
|
20
|
-
Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU YUUZOU
|
21
|
-
Copyright (c) 2002 Internet Programming with Ruby writers. All rights reserved.
|
data/sample/webrick/demo-app.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
require "pp"
|
2
|
-
|
3
|
-
module DemoApplication
|
4
|
-
def initialize(config, enctype)
|
5
|
-
super
|
6
|
-
@enctype = enctype
|
7
|
-
end
|
8
|
-
|
9
|
-
def do_GET(req, res)
|
10
|
-
if req.path_info != "/"
|
11
|
-
res.set_redirect(WEBrick::HTTPStatus::Found, req.script_name + "/")
|
12
|
-
end
|
13
|
-
res.body =<<-_end_of_html_
|
14
|
-
<HTML>
|
15
|
-
<FORM method="POST" enctype=#{@enctype}>
|
16
|
-
text: <INPUT type="text" name="text"><BR>
|
17
|
-
file: <INPUT type="file" name="file"><BR>
|
18
|
-
check:
|
19
|
-
<INPUT type="checkbox" name="check" value="a">a,
|
20
|
-
<INPUT type="checkbox" name="check" value="b">b,
|
21
|
-
<INPUT type="checkbox" name="check" value="c">c,
|
22
|
-
<BR>
|
23
|
-
<INPUT type="submit">
|
24
|
-
</FORM>
|
25
|
-
</HTML>
|
26
|
-
_end_of_html_
|
27
|
-
res['content-type'] = 'text/html; charset=iso-8859-1'
|
28
|
-
end
|
29
|
-
|
30
|
-
def do_POST(req, res)
|
31
|
-
if req["content-length"].to_i > 1024*10
|
32
|
-
raise WEBrick::HTTPStatus::Forbidden, "file size too large"
|
33
|
-
end
|
34
|
-
res.body =<<-_end_of_html_
|
35
|
-
<HTML>
|
36
|
-
<H2>Query Parameters</H2>
|
37
|
-
#{display_query(req.query)}
|
38
|
-
<A href="#{req.path}">return</A>
|
39
|
-
<H2>Request</H2>
|
40
|
-
<PRE>#{WEBrick::HTMLUtils::escape(PP::pp(req, "", 80))}</PRE>
|
41
|
-
<H2>Response</H2>
|
42
|
-
<PRE>#{WEBrick::HTMLUtils::escape(PP::pp(res, "", 80))}</PRE>
|
43
|
-
</HTML>
|
44
|
-
_end_of_html_
|
45
|
-
res['content-type'] = 'text/html; charset=iso-8859-1'
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
def display_query(q)
|
51
|
-
ret = ""
|
52
|
-
q.each{|key, val|
|
53
|
-
ret << "<H3>#{WEBrick::HTMLUtils::escape(key)}</H3>"
|
54
|
-
ret << "<TABLE border=1>"
|
55
|
-
ret << make_tr("val", val.inspect)
|
56
|
-
ret << make_tr("val.to_a", val.to_a.inspect)
|
57
|
-
ret << make_tr("val.to_ary", val.to_ary.inspect)
|
58
|
-
ret << "</TABLE>"
|
59
|
-
}
|
60
|
-
ret
|
61
|
-
end
|
62
|
-
|
63
|
-
def make_tr(arg0, arg1)
|
64
|
-
"<TR><TD>#{arg0}</TD><TD>#{WEBrick::HTMLUtils::escape(arg1)}</TD></TR>"
|
65
|
-
end
|
66
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require "webrick/cgi"
|
3
|
-
require "webrick/https" # should load if it runs on HTTPS server
|
4
|
-
require "./demo-app"
|
5
|
-
|
6
|
-
class DemoCGI < WEBrick::CGI
|
7
|
-
include DemoApplication
|
8
|
-
end
|
9
|
-
|
10
|
-
config = { :NPH => false }
|
11
|
-
cgi = DemoCGI.new(config, "multipart/form-data")
|
12
|
-
cgi.start
|
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require "webrick/cgi"
|
3
|
-
require "webrick/https" # should load if it runs on HTTPS server
|
4
|
-
require "./demo-app"
|
5
|
-
|
6
|
-
class DemoCGI < WEBrick::CGI
|
7
|
-
include DemoApplication
|
8
|
-
end
|
9
|
-
|
10
|
-
config = { :NPH => false }
|
11
|
-
cgi = DemoCGI.new(config, "application/x-www-form-urlencoded")
|
12
|
-
cgi.start
|
data/sample/webrick/hello.cgi
DELETED
data/sample/webrick/hello.rb
DELETED
data/sample/webrick/httpd.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require "webrick"
|
2
|
-
|
3
|
-
httpd = WEBrick::HTTPServer.new(
|
4
|
-
:DocumentRoot => File::dirname(__FILE__),
|
5
|
-
:Port => 10080,
|
6
|
-
:Logger => WEBrick::Log.new($stderr, WEBrick::Log::DEBUG),
|
7
|
-
:AccessLog => [
|
8
|
-
[ $stderr, WEBrick::AccessLog::COMMON_LOG_FORMAT ],
|
9
|
-
[ $stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT ],
|
10
|
-
[ $stderr, WEBrick::AccessLog::AGENT_LOG_FORMAT ],
|
11
|
-
],
|
12
|
-
:CGIPathEnv => ENV["PATH"] # PATH environment variable for CGI.
|
13
|
-
)
|
14
|
-
|
15
|
-
require "./hello"
|
16
|
-
httpd.mount("/hello", HelloServlet)
|
17
|
-
|
18
|
-
require "./demo-servlet"
|
19
|
-
httpd.mount("/urlencoded", DemoServlet, "application/x-www-form-urlencoded")
|
20
|
-
httpd.mount("/multipart", DemoServlet, "multipart/form-data")
|
21
|
-
|
22
|
-
trap(:INT){ httpd.shutdown }
|
23
|
-
httpd.start
|
data/sample/webrick/httpproxy.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require "webrick"
|
2
|
-
require "webrick/httpproxy"
|
3
|
-
|
4
|
-
# The :ProxyContentHandler proc will be invoked before sending a response to
|
5
|
-
# the User-Agent. You can inspect the pair of request and response messages
|
6
|
-
# (or edit the response message if necessary).
|
7
|
-
|
8
|
-
pch = Proc.new{|req, res|
|
9
|
-
p [ req.request_line, res.status_line ]
|
10
|
-
}
|
11
|
-
|
12
|
-
def upstream_proxy
|
13
|
-
if prx = ENV["http_proxy"]
|
14
|
-
return URI.parse(prx)
|
15
|
-
end
|
16
|
-
return nil
|
17
|
-
end
|
18
|
-
|
19
|
-
httpd = WEBrick::HTTPProxyServer.new(
|
20
|
-
:Port => 10080,
|
21
|
-
:ProxyContentHandler => pch,
|
22
|
-
:ProxyURI => upstream_proxy
|
23
|
-
)
|
24
|
-
Signal.trap(:INT){ httpd.shutdown }
|
25
|
-
httpd.start
|