Skip to content

Commit 1c4b5ab

Browse files
committed
Slightly improved handling of version in HTTP/1 server.
1 parent 489c468 commit 1c4b5ab

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/async/http/protocol/http1/server.rb

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def each(task: Task.current)
4747

4848
while request = next_request
4949
response = yield(request, self)
50+
version = request.version
5051
body = response&.body
5152

5253
if hijacked?
@@ -77,7 +78,7 @@ def each(task: Task.current)
7778
# This code path is to support legacy behavior where the response status is set to 101, but the protocol is not upgraded. This may not be a valid use case, but it is supported for compatibility. We expect the response headers to contain the `upgrade` header.
7879
write_response(@version, response.status, response.headers)
7980

80-
stream = write_tunnel_body(request.version)
81+
stream = write_tunnel_body(version)
8182

8283
# Same as above:
8384
request = nil
@@ -89,7 +90,7 @@ def each(task: Task.current)
8990
write_response(@version, response.status, response.headers)
9091

9192
if request.connect? and response.success?
92-
stream = write_tunnel_body(request.version)
93+
stream = write_tunnel_body(version)
9394

9495
# Same as above:
9596
request = nil
@@ -99,7 +100,6 @@ def each(task: Task.current)
99100
return body.call(stream)
100101
else
101102
head = request.head?
102-
version = request.version
103103

104104
# Same as above:
105105
request = nil unless request.body
@@ -114,7 +114,7 @@ def each(task: Task.current)
114114
else
115115
# If the request failed to generate a response, it was an internal server error:
116116
write_response(@version, 500, {})
117-
write_body(request.version, nil)
117+
write_body(version, nil)
118118
end
119119

120120
# Gracefully finish reading the request body if it was not already done so.

0 commit comments

Comments
 (0)