Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set @env[CONTENT_LENGTH] value as string. #2549

Merged
merged 3 commits into from Feb 4, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion History.md
@@ -1,7 +1,8 @@
## 5.2.1 / 2021-01-
## 5.2.1 / 2021-02-

* Bugfixes
* MiniSSL::Socket#write - use data.byteslice(wrote..-1) ([#2543])
* Set @env[CONTENT_LENGTH] value as string.
nmb marked this conversation as resolved.
Show resolved Hide resolved

## 5.2.0 / 2021-01-27

Expand Down
4 changes: 2 additions & 2 deletions lib/puma/client.rb
Expand Up @@ -374,7 +374,7 @@ def read_chunked_body
end

if decode_chunk(chunk)
@env[CONTENT_LENGTH] = @chunked_content_length
@env[CONTENT_LENGTH] = @chunked_content_length.to_s
return true
end
end
Expand All @@ -391,7 +391,7 @@ def setup_chunked_body(body)
@chunked_content_length = 0

if decode_chunk(body)
@env[CONTENT_LENGTH] = @chunked_content_length
@env[CONTENT_LENGTH] = @chunked_content_length.to_s
return true
end
end
Expand Down
32 changes: 16 additions & 16 deletions test/test_puma_server.rb
Expand Up @@ -518,7 +518,7 @@ def test_chunked_request

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_large_chunked_request
Expand Down Expand Up @@ -546,7 +546,7 @@ def test_large_chunked_request
data = send_http_and_read request

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal size, content_length
assert_equal size, Integer(content_length)
assert_equal request_body, body
end
end
Expand All @@ -569,7 +569,7 @@ def test_chunked_request_pause_before_value

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_pause_between_chunks
Expand All @@ -590,7 +590,7 @@ def test_chunked_request_pause_between_chunks

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_pause_mid_count
Expand All @@ -611,7 +611,7 @@ def test_chunked_request_pause_mid_count

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_pause_before_count_newline
Expand All @@ -632,7 +632,7 @@ def test_chunked_request_pause_before_count_newline

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_pause_mid_value
Expand All @@ -653,7 +653,7 @@ def test_chunked_request_pause_mid_value

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_pause_between_cr_lf_after_size_of_second_chunk
Expand Down Expand Up @@ -683,7 +683,7 @@ def test_chunked_request_pause_between_cr_lf_after_size_of_second_chunk

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal (part1 + 'b'), body
assert_equal 4201, content_length
assert_equal "4201", content_length
end

def test_chunked_request_pause_between_closing_cr_lf
Expand All @@ -705,7 +705,7 @@ def test_chunked_request_pause_between_closing_cr_lf

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal 'hello', body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_pause_before_closing_cr_lf
Expand All @@ -727,7 +727,7 @@ def test_chunked_request_pause_before_closing_cr_lf

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal 'hello', body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_request_header_case
Expand All @@ -743,7 +743,7 @@ def test_chunked_request_header_case

assert_equal "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 0\r\n\r\n", data
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
end

def test_chunked_keep_alive
Expand All @@ -761,7 +761,7 @@ def test_chunked_keep_alive

assert_equal ["HTTP/1.1 200 OK", "Content-Length: 0"], h
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length

sock.close
end
Expand Down Expand Up @@ -789,7 +789,7 @@ def test_chunked_keep_alive_two_back_to_back
h = header(sock)
assert_equal ["HTTP/1.1 200 OK", "Content-Length: 0"], h
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
assert_equal true, last_crlf_written

last_crlf_writer.join
Expand All @@ -801,7 +801,7 @@ def test_chunked_keep_alive_two_back_to_back

assert_equal ["HTTP/1.1 200 OK", "Content-Length: 0"], h
assert_equal "goodbye", body
assert_equal 7, content_length
assert_equal "7", content_length

sock.close
end
Expand All @@ -823,7 +823,7 @@ def test_chunked_keep_alive_two_back_to_back_with_set_remote_address
h = header sock
assert_equal ["HTTP/1.1 200 OK", "Content-Length: 0"], h
assert_equal "hello", body
assert_equal 5, content_length
assert_equal "5", content_length
assert_equal "127.0.0.1", remote_addr

sock << "GET / HTTP/1.1\r\nX-Forwarded-For: 127.0.0.2\r\nConnection: Keep-Alive\r\nTransfer-Encoding: chunked\r\n\r\n4\r\ngood\r\n3\r\nbye\r\n0\r\n\r\n"
Expand All @@ -833,7 +833,7 @@ def test_chunked_keep_alive_two_back_to_back_with_set_remote_address

assert_equal ["HTTP/1.1 200 OK", "Content-Length: 0"], h
assert_equal "goodbye", body
assert_equal 7, content_length
assert_equal "7", content_length
assert_equal "127.0.0.2", remote_addr

sock.close
Expand Down