|
|
@ -154,9 +154,7 @@ class Request |
|
|
|
end |
|
|
|
|
|
|
|
module ClientLimit |
|
|
|
def body_with_limit(limit = 1.megabyte) |
|
|
|
raise Mastodon::LengthValidationError if content_length.present? && content_length > limit |
|
|
|
|
|
|
|
def truncated_body(limit = 1.megabyte) |
|
|
|
if charset.nil? |
|
|
|
encoding = Encoding::BINARY |
|
|
|
else |
|
|
@ -173,11 +171,19 @@ class Request |
|
|
|
contents << chunk |
|
|
|
chunk.clear |
|
|
|
|
|
|
|
raise Mastodon::LengthValidationError if contents.bytesize > limit |
|
|
|
break if contents.bytesize > limit |
|
|
|
end |
|
|
|
|
|
|
|
contents |
|
|
|
end |
|
|
|
|
|
|
|
def body_with_limit(limit = 1.megabyte) |
|
|
|
raise Mastodon::LengthValidationError if content_length.present? && content_length > limit |
|
|
|
|
|
|
|
contents = truncated_body(limit) |
|
|
|
raise Mastodon::LengthValidationError if contents.bytesize > limit |
|
|
|
contents |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
if ::HTTP::Response.methods.include?(:body_with_limit) && !Rails.env.production? |
|
|
|