webrick 1.3.1 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|