async-http 0.84.0 → 0.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/async/http/protocol/http2/output.rb +2 -0
- data/lib/async/http/protocol/http2/request.rb +4 -4
- data/lib/async/http/protocol/http2/response.rb +2 -2
- data/lib/async/http/protocol/http2/stream.rb +3 -1
- data/lib/async/http/protocol/http2.rb +2 -0
- data/lib/async/http/version.rb +1 -1
- data/readme.md +4 -0
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea4e711204ad0a9af1e1e635a4ce7248683ae570e783bd8648e9d8e9c8c21b9c
|
4
|
+
data.tar.gz: 14dd2e09b46342b06aebf142f40d8c75aa864cee62df950452ef07e47ec2e7e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b667f21701e3e9f6d77f7af842b2540c979ebefe9f94a07fda2eb617e5e1327621d51fc7c0caf6e97245228db09d42a2850f2a96c94c3fbc62683837c4995cc
|
7
|
+
data.tar.gz: 256a13cfc5fd2f3cef207086902893d4ec5753d44af7ae0422c12636cb756b7ca27fe498d2810fe3757d84e5470157900c8d9be51a714e457a0f1f18342dd193
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -112,7 +112,7 @@ module Async
|
|
112
112
|
|
113
113
|
def send_response(response)
|
114
114
|
if response.nil?
|
115
|
-
return @stream.send_headers(
|
115
|
+
return @stream.send_headers(NO_RESPONSE, ::Protocol::HTTP2::END_STREAM)
|
116
116
|
end
|
117
117
|
|
118
118
|
protocol_headers = [
|
@@ -129,14 +129,14 @@ module Async
|
|
129
129
|
# This function informs the headers object that any subsequent headers are going to be trailer. Therefore, it must be called *before* sending the headers, to avoid any race conditions.
|
130
130
|
trailer = response.headers.trailer!
|
131
131
|
|
132
|
-
@stream.send_headers(
|
132
|
+
@stream.send_headers(headers)
|
133
133
|
|
134
134
|
@stream.send_body(body, trailer)
|
135
135
|
else
|
136
136
|
# Ensure the response body is closed if we are ending the stream:
|
137
137
|
response.close
|
138
138
|
|
139
|
-
@stream.send_headers(
|
139
|
+
@stream.send_headers(headers, ::Protocol::HTTP2::END_STREAM)
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
@@ -149,7 +149,7 @@ module Async
|
|
149
149
|
interim_response_headers = ::Protocol::HTTP::Headers::Merged.new(interim_response_headers, headers)
|
150
150
|
end
|
151
151
|
|
152
|
-
@stream.send_headers(
|
152
|
+
@stream.send_headers(interim_response_headers)
|
153
153
|
end
|
154
154
|
end
|
155
155
|
end
|
@@ -222,7 +222,7 @@ module Async
|
|
222
222
|
)
|
223
223
|
|
224
224
|
if request.body.nil?
|
225
|
-
@stream.send_headers(
|
225
|
+
@stream.send_headers(headers, ::Protocol::HTTP2::END_STREAM)
|
226
226
|
else
|
227
227
|
if length = request.body.length
|
228
228
|
# This puts it at the end of the pseudo-headers:
|
@@ -233,7 +233,7 @@ module Async
|
|
233
233
|
trailer = request.headers.trailer!
|
234
234
|
|
235
235
|
begin
|
236
|
-
@stream.send_headers(
|
236
|
+
@stream.send_headers(headers)
|
237
237
|
rescue
|
238
238
|
raise RequestFailed
|
239
239
|
end
|
@@ -131,7 +131,7 @@ module Async
|
|
131
131
|
else
|
132
132
|
# Write trailer?
|
133
133
|
if trailer&.any?
|
134
|
-
send_headers(
|
134
|
+
send_headers(trailer, ::Protocol::HTTP2::END_STREAM)
|
135
135
|
else
|
136
136
|
send_data(nil, ::Protocol::HTTP2::END_STREAM)
|
137
137
|
end
|
@@ -142,6 +142,8 @@ module Async
|
|
142
142
|
super
|
143
143
|
|
144
144
|
@output&.window_updated(size)
|
145
|
+
|
146
|
+
return true
|
145
147
|
end
|
146
148
|
|
147
149
|
# When the stream transitions to the closed state, this method is called. There are roughly two ways this can happen:
|
@@ -27,6 +27,7 @@ module Async
|
|
27
27
|
::Protocol::HTTP2::Settings::ENABLE_PUSH => 0,
|
28
28
|
::Protocol::HTTP2::Settings::MAXIMUM_FRAME_SIZE => 0x100000,
|
29
29
|
::Protocol::HTTP2::Settings::INITIAL_WINDOW_SIZE => 0x800000,
|
30
|
+
::Protocol::HTTP2::Settings::NO_RFC7540_PRIORITIES => 1,
|
30
31
|
}
|
31
32
|
|
32
33
|
SERVER_SETTINGS = {
|
@@ -35,6 +36,7 @@ module Async
|
|
35
36
|
::Protocol::HTTP2::Settings::MAXIMUM_FRAME_SIZE => 0x100000,
|
36
37
|
::Protocol::HTTP2::Settings::INITIAL_WINDOW_SIZE => 0x800000,
|
37
38
|
::Protocol::HTTP2::Settings::ENABLE_CONNECT_PROTOCOL => 1,
|
39
|
+
::Protocol::HTTP2::Settings::NO_RFC7540_PRIORITIES => 1,
|
38
40
|
}
|
39
41
|
|
40
42
|
def self.client(peer, settings = CLIENT_SETTINGS)
|
data/lib/async/http/version.rb
CHANGED
data/readme.md
CHANGED
@@ -16,6 +16,10 @@ Please see the [project documentation](https://socketry.github.io/async-http/) f
|
|
16
16
|
|
17
17
|
Please see the [project releases](https://socketry.github.io/async-http/releases/index) for all releases.
|
18
18
|
|
19
|
+
### v0.86.0
|
20
|
+
|
21
|
+
- Add support for HTTP/2 `NO_RFC7540_PRIORITIES`. See <https://www.rfc-editor.org/rfc/rfc9218.html> for more details.
|
22
|
+
|
19
23
|
### v0.84.0
|
20
24
|
|
21
25
|
- Minor consistency fixes to `Async::HTTP::Internet` singleton methods.
|
data/releases.md
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.86.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -58,7 +58,7 @@ cert_chain:
|
|
58
58
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
59
59
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
60
60
|
-----END CERTIFICATE-----
|
61
|
-
date: 2024-
|
61
|
+
date: 2024-12-01 00:00:00.000000000 Z
|
62
62
|
dependencies:
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
64
|
name: async
|
@@ -150,14 +150,14 @@ dependencies:
|
|
150
150
|
requirements:
|
151
151
|
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: '0.
|
153
|
+
version: '0.22'
|
154
154
|
type: :runtime
|
155
155
|
prerelease: false
|
156
156
|
version_requirements: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: '0.
|
160
|
+
version: '0.22'
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
162
|
name: traces
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|