Skip to content

Commit

Permalink
Set @env[CONTENT_LENGTH] value as string. (puma#2549)
Browse files Browse the repository at this point in the history
* Set @env[CONTENT_LENGTH] value as string.

* Update tests.

Update tests to reflect that CONTENT_LENGTH is now a string.
Add change to History.md.

* Update History.md

Co-authored-by: Patrik Ragnarsson <patrik@starkast.net>

Co-authored-by: Patrik Ragnarsson <patrik@starkast.net>
  • Loading branch information
2 people authored and JuanitoFatas committed Sep 9, 2022
1 parent a8d8938 commit 99a570f
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 19 deletions.
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.

## 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

0 comments on commit 99a570f

Please sign in to comment.