summaryrefslogtreecommitdiff
path: root/lib/webrick
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-26 05:29:45 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-26 05:29:45 +0000
commit7a635a7d12fc127da76bc4eca78414602db6350c (patch)
tree284dfa6e0dd0e6e9d0c0d9f97e2d41ed54727de0 /lib/webrick
parentb1ad07bd1aefb14fa0a2c6ae38c0a212328f3121 (diff)
lib/webrick: explicitly convert header values to a string
The values of @header are expected to be all strings; WEBrick::HTTPResponse::[]=(key, val) explicitly converts the second argument to a string and assigns it to @header hash. However, there were some points in WEBrick internal code that assigns non-String to @header. This change fixes the issues. The values are checked by `header_value =~ /\r\n/` in check_header. The type confusion caused conflict with removal of `Object#=~` [Feature #15231]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/webrick')
-rw-r--r--lib/webrick/httpresponse.rb4
-rw-r--r--lib/webrick/httpservlet/filehandler.rb4
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/webrick/httpresponse.rb b/lib/webrick/httpresponse.rb
index bc1dacc837..41a2510e6f 100644
--- a/lib/webrick/httpresponse.rb
+++ b/lib/webrick/httpresponse.rb
@@ -254,7 +254,7 @@ module WEBrick
@header.delete('content-length')
elsif @header['content-length'].nil?
unless @body.is_a?(IO)
- @header['content-length'] = @body ? @body.bytesize : 0
+ @header['content-length'] = (@body ? @body.bytesize : 0).to_s
end
end
@@ -277,7 +277,7 @@ module WEBrick
# Location is a single absoluteURI.
if location = @header['location']
if @request_uri
- @header['location'] = @request_uri.merge(location)
+ @header['location'] = @request_uri.merge(location).to_s
end
end
end
diff --git a/lib/webrick/httpservlet/filehandler.rb b/lib/webrick/httpservlet/filehandler.rb
index cb9c8b0976..601882ef4c 100644
--- a/lib/webrick/httpservlet/filehandler.rb
+++ b/lib/webrick/httpservlet/filehandler.rb
@@ -55,7 +55,7 @@ module WEBrick
else
mtype = HTTPUtils::mime_type(@local_path, @config[:MimeTypes])
res['content-type'] = mtype
- res['content-length'] = st.size
+ res['content-length'] = st.size.to_s
res['last-modified'] = mtime.httpdate
res.body = File.open(@local_path, "rb")
end
@@ -144,7 +144,7 @@ module WEBrick
raise HTTPStatus::RequestRangeNotSatisfiable if first < 0
res['content-type'] = mtype
res['content-range'] = "bytes #{first}-#{last}/#{filesize}"
- res['content-length'] = last - first + 1
+ res['content-length'] = (last - first + 1).to_s
res.body = io.dup
else
raise HTTPStatus::BadRequest