mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 15:31:11 +08:00
freedom patches for fixes submitted to rack
This commit is contained in:
42
lib/freedom_patches/rack_patches.rb
Normal file
42
lib/freedom_patches/rack_patches.rb
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# patch https://github.com/rack/rack/pull/600
|
||||||
|
#
|
||||||
|
class Rack::ETag
|
||||||
|
private
|
||||||
|
|
||||||
|
def digest_body(body)
|
||||||
|
parts = []
|
||||||
|
has_body = false
|
||||||
|
|
||||||
|
body.each do |part|
|
||||||
|
parts << part
|
||||||
|
has_body ||= part.length > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
hexdigest =
|
||||||
|
if has_body
|
||||||
|
digest = Digest::MD5.new
|
||||||
|
parts.each { |part| digest << part }
|
||||||
|
digest.hexdigest
|
||||||
|
end
|
||||||
|
|
||||||
|
[hexdigest, parts]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# patch https://github.com/rack/rack/pull/596
|
||||||
|
#
|
||||||
|
class Rack::ConditionalGet
|
||||||
|
private
|
||||||
|
def to_rfc2822(since)
|
||||||
|
# shortest possible valid date is the obsolete: 1 Nov 97 09:55 A
|
||||||
|
# anything shorter is invalid, this avoids exceptions for common cases
|
||||||
|
# most common being the empty string
|
||||||
|
if since && since.length >= 16
|
||||||
|
# NOTE: there is no trivial way to write this in a non execption way
|
||||||
|
# _rfc2822 returns a hash but is not that usable
|
||||||
|
Time.rfc2822(since) rescue nil
|
||||||
|
else
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Reference in New Issue
Block a user