async-http 0.84.0 → 0.86.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|