webrick 1.5.1 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of webrick might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/webrick/accesslog.rb +3 -5
- data/lib/webrick/httprequest.rb +9 -4
- data/lib/webrick/httpresponse.rb +16 -2
- data/lib/webrick/httpservlet/cgihandler.rb +7 -1
- data/lib/webrick/httputils.rb +1 -4
- data/lib/webrick/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b22d1a22487ddaea4a02b95387d97d6860f856578442b3466dc1476313422ab
|
4
|
+
data.tar.gz: '08bc9dac03f0340f332bdb65415443c749365245340e59467c039f32f2410366'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a7c7286591c28174ce5921164fcea59130c4ff0031f01fd1abf4c89073b8774cb3d409328d8644dbd83cc29de2e4a8b25c9bd2866ba618f8f66530a100d830b
|
7
|
+
data.tar.gz: 313497330c512f587d9e8af3ce3a1936c64c55b58f694c3088db872ef9628ac44f4029277d5178cb1ffc43ea1d94bc68b98bb4884d78f667bd435cad36dfafa6
|
data/lib/webrick/accesslog.rb
CHANGED
@@ -149,11 +149,9 @@ module WEBrick
|
|
149
149
|
# Escapes control characters in +data+
|
150
150
|
|
151
151
|
def escape(data)
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
data
|
156
|
-
end
|
152
|
+
data = data.gsub(/[[:cntrl:]\\]+/) {$&.dump[1...-1]}
|
153
|
+
data.untaint if RUBY_VERSION < '2.7'
|
154
|
+
data
|
157
155
|
end
|
158
156
|
end
|
159
157
|
end
|
data/lib/webrick/httprequest.rb
CHANGED
@@ -226,9 +226,9 @@ module WEBrick
|
|
226
226
|
raise HTTPStatus::BadRequest, "bad URI `#{@unparsed_uri}'."
|
227
227
|
end
|
228
228
|
|
229
|
-
if
|
229
|
+
if /close/io =~ self["connection"]
|
230
230
|
@keep_alive = false
|
231
|
-
elsif
|
231
|
+
elsif /keep-alive/io =~ self["connection"]
|
232
232
|
@keep_alive = true
|
233
233
|
elsif @http_version < "1.1"
|
234
234
|
@keep_alive = false
|
@@ -503,7 +503,7 @@ module WEBrick
|
|
503
503
|
return unless socket
|
504
504
|
if tc = self['transfer-encoding']
|
505
505
|
case tc
|
506
|
-
when
|
506
|
+
when /chunked/io then read_chunked(socket, block)
|
507
507
|
else raise HTTPStatus::NotImplemented, "Transfer-Encoding: #{tc}."
|
508
508
|
end
|
509
509
|
elsif self['content-length'] || @remaining_size
|
@@ -611,7 +611,12 @@ module WEBrick
|
|
611
611
|
end
|
612
612
|
if host_port = self["x-forwarded-host"]
|
613
613
|
host_port = host_port.split(",", 2).first
|
614
|
-
|
614
|
+
if host_port =~ /\A(\[[0-9a-fA-F:]+\])(?::(\d+))?\z/
|
615
|
+
@forwarded_host = $1
|
616
|
+
tmp = $2
|
617
|
+
else
|
618
|
+
@forwarded_host, tmp = host_port.split(":", 2)
|
619
|
+
end
|
615
620
|
@forwarded_port = (tmp || (@forwarded_proto == "https" ? 443 : 80)).to_i
|
616
621
|
end
|
617
622
|
if addrs = self["x-forwarded-for"]
|
data/lib/webrick/httpresponse.rb
CHANGED
@@ -51,8 +51,21 @@ module WEBrick
|
|
51
51
|
attr_accessor :reason_phrase
|
52
52
|
|
53
53
|
##
|
54
|
-
# Body may be
|
55
|
-
#
|
54
|
+
# Body may be:
|
55
|
+
# * a String;
|
56
|
+
# * an IO-like object that responds to +#read+ and +#readpartial+;
|
57
|
+
# * a Proc-like object that responds to +#call+.
|
58
|
+
#
|
59
|
+
# In the latter case, either #chunked= should be set to +true+,
|
60
|
+
# or <code>header['content-length']</code> explicitly provided.
|
61
|
+
# Example:
|
62
|
+
#
|
63
|
+
# server.mount_proc '/' do |req, res|
|
64
|
+
# res.chunked = true
|
65
|
+
# # or
|
66
|
+
# # res.header['content-length'] = 10
|
67
|
+
# res.body = proc { |out| out.write(Time.now.to_s) }
|
68
|
+
# end
|
56
69
|
|
57
70
|
attr_accessor :body
|
58
71
|
|
@@ -142,6 +155,7 @@ module WEBrick
|
|
142
155
|
# Sets the response header +field+ to +value+
|
143
156
|
|
144
157
|
def []=(field, value)
|
158
|
+
@chunked = value.to_s.downcase == 'chunked' if field.downcase == 'transfer-encoding'
|
145
159
|
@header[field.downcase] = value.to_s
|
146
160
|
end
|
147
161
|
|
@@ -28,6 +28,7 @@ module WEBrick
|
|
28
28
|
class CGIHandler < AbstractServlet
|
29
29
|
Ruby = RbConfig.ruby # :nodoc:
|
30
30
|
CGIRunner = "\"#{Ruby}\" \"#{WEBrick::Config::LIBDIR}/httpservlet/cgi_runner.rb\"" # :nodoc:
|
31
|
+
CGIRunnerArray = [Ruby, "#{WEBrick::Config::LIBDIR}/httpservlet/cgi_runner.rb".freeze].freeze # :nodoc:
|
31
32
|
|
32
33
|
##
|
33
34
|
# Creates a new CGI script servlet for the script at +name+
|
@@ -36,7 +37,12 @@ module WEBrick
|
|
36
37
|
super(server, name)
|
37
38
|
@script_filename = name
|
38
39
|
@tempdir = server[:TempDir]
|
39
|
-
|
40
|
+
interpreter = server[:CGIInterpreter]
|
41
|
+
if interpreter.is_a?(Array)
|
42
|
+
@cgicmd = CGIRunnerArray + interpreter
|
43
|
+
else
|
44
|
+
@cgicmd = "#{CGIRunner} #{interpreter}"
|
45
|
+
end
|
40
46
|
end
|
41
47
|
|
42
48
|
# :stopdoc:
|
data/lib/webrick/httputils.rb
CHANGED
data/lib/webrick/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webrick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAKAHASHI Masayoshi
|
8
8
|
- GOTOU YUUZOU
|
9
9
|
- Eric Wong
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-11-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -29,8 +29,8 @@ dependencies:
|
|
29
29
|
description: WEBrick is an HTTP server toolkit that can be configured as an HTTPS
|
30
30
|
server, a proxy server, and a virtual-host server.
|
31
31
|
email:
|
32
|
-
-
|
33
|
-
-
|
32
|
+
-
|
33
|
+
-
|
34
34
|
- normal@ruby-lang.org
|
35
35
|
executables: []
|
36
36
|
extensions: []
|
@@ -85,7 +85,7 @@ metadata:
|
|
85
85
|
bug_tracker_uri: https://bugs.ruby-lang.org/projects/ruby-trunk/issues
|
86
86
|
homepage_uri: https://www.ruby-lang.org
|
87
87
|
source_code_uri: https://git.ruby-lang.org/ruby.git/
|
88
|
-
post_install_message:
|
88
|
+
post_install_message:
|
89
89
|
rdoc_options: []
|
90
90
|
require_paths:
|
91
91
|
- lib
|
@@ -100,8 +100,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
requirements: []
|
103
|
-
rubygems_version: 3.
|
104
|
-
signing_key:
|
103
|
+
rubygems_version: 3.0.3
|
104
|
+
signing_key:
|
105
105
|
specification_version: 4
|
106
106
|
summary: HTTP server toolkit
|
107
107
|
test_files: []
|