async-http 0.53.1 → 0.54.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
- data/bake/async/http/h2spec.rb +1 -1
- data/lib/async/http/client.rb +1 -1
- data/lib/async/http/protocol/http2.rb +0 -18
- data/lib/async/http/protocol/http2/request.rb +0 -38
- data/lib/async/http/protocol/http2/response.rb +1 -13
- data/lib/async/http/protocol/request.rb +0 -4
- data/lib/async/http/server.rb +3 -3
- data/lib/async/http/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58036943b2703b5583d7213ee79593b6d9edd2f5e84e431b78fc1bc960fdf591
|
4
|
+
data.tar.gz: 014dbfce1a65d60894b9a1d474fa3f53e810e3a2f37c0493acac0abe83585ff5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 446d57893e12466988963eb0becae11b8328bad7615317119f93c0c3a0fd696a457f7928ed2b1cbb3e3ce43436c8bf15e9675ae57fe6c7fa73a9f685d5a0646e
|
7
|
+
data.tar.gz: d75d5eb8e013c213c0a5e9fe8570965a59f1e042238daa72696a9b20e021bac4b4775ee2e6f23b389f9dff52f34b6c8c24938d4ce49eb7248149587ea04988e1
|
data/bake/async/http/h2spec.rb
CHANGED
@@ -29,7 +29,7 @@ def server
|
|
29
29
|
Async.logger.info(self){"Starting server..."}
|
30
30
|
|
31
31
|
container.run(count: 1) do
|
32
|
-
server = Async::HTTP::Server.for(endpoint, Async::HTTP::Protocol::HTTP2, "https") do |request|
|
32
|
+
server = Async::HTTP::Server.for(endpoint, protocol: Async::HTTP::Protocol::HTTP2, scheme: "https") do |request|
|
33
33
|
Protocol::HTTP::Response[200, {'content-type' => 'text/plain'}, ["Hello World"]]
|
34
34
|
end
|
35
35
|
|
data/lib/async/http/client.rb
CHANGED
@@ -45,7 +45,7 @@ module Async
|
|
45
45
|
# @param protocol [Protocol::HTTP1 | Protocol::HTTP2 | Protocol::HTTPS] the protocol to use.
|
46
46
|
# @param scheme [String] The default scheme to set to requests.
|
47
47
|
# @param authority [String] The default authority to set to requests.
|
48
|
-
def initialize(endpoint, protocol
|
48
|
+
def initialize(endpoint, protocol: endpoint.protocol, scheme: endpoint.scheme, authority: endpoint.authority, retries: DEFAULT_RETRIES, connection_limit: DEFAULT_CONNECTION_LIMIT)
|
49
49
|
@endpoint = endpoint
|
50
50
|
@protocol = protocol
|
51
51
|
|
@@ -76,24 +76,6 @@ module Async
|
|
76
76
|
def self.names
|
77
77
|
["h2"]
|
78
78
|
end
|
79
|
-
|
80
|
-
module WithPush
|
81
|
-
CLIENT_SETTINGS = HTTP2::CLIENT_SETTINGS.merge(
|
82
|
-
::Protocol::HTTP2::Settings::ENABLE_PUSH => 1,
|
83
|
-
)
|
84
|
-
|
85
|
-
def self.client(peer, settings = CLIENT_SETTINGS)
|
86
|
-
HTTP2.client(peer, settings)
|
87
|
-
end
|
88
|
-
|
89
|
-
def self.server(peer, settings = SERVER_SETTINGS)
|
90
|
-
HTTP2.server(peer, settings)
|
91
|
-
end
|
92
|
-
|
93
|
-
def self.names
|
94
|
-
HTTP2.names
|
95
|
-
end
|
96
|
-
end
|
97
79
|
end
|
98
80
|
end
|
99
81
|
end
|
@@ -39,18 +39,6 @@ module Async
|
|
39
39
|
|
40
40
|
attr :request
|
41
41
|
|
42
|
-
# Create a fake request on the server, with the given headers.
|
43
|
-
def create_push_promise_stream(headers)
|
44
|
-
stream = @connection.create_push_promise_stream(&Stream.method(:create))
|
45
|
-
|
46
|
-
stream.headers = ::Protocol::HTTP::Headers.new
|
47
|
-
|
48
|
-
# This will ultimately enqueue the request to be processed by the server:
|
49
|
-
stream.receive_initial_headers(headers, false)
|
50
|
-
|
51
|
-
return stream
|
52
|
-
end
|
53
|
-
|
54
42
|
def receive_initial_headers(headers, end_stream)
|
55
43
|
headers.each do |key, value|
|
56
44
|
if key == SCHEME
|
@@ -133,32 +121,6 @@ module Async
|
|
133
121
|
false
|
134
122
|
end
|
135
123
|
|
136
|
-
def push?
|
137
|
-
@stream.connection.enable_push?
|
138
|
-
end
|
139
|
-
|
140
|
-
# @return [Stream] the promised stream, on which to send data.
|
141
|
-
def push(path, headers = nil, scheme = @scheme, authority = @authority)
|
142
|
-
raise ArgumentError, "Missing scheme!" unless scheme
|
143
|
-
raise ArgumentError, "Missing authority!" unless authority
|
144
|
-
|
145
|
-
push_headers = [
|
146
|
-
[SCHEME, scheme],
|
147
|
-
[METHOD, ::Protocol::HTTP::Methods::GET],
|
148
|
-
[PATH, path],
|
149
|
-
[AUTHORITY, authority]
|
150
|
-
]
|
151
|
-
|
152
|
-
if headers
|
153
|
-
push_headers = Headers::Merged.new(
|
154
|
-
push_headers,
|
155
|
-
headers
|
156
|
-
)
|
157
|
-
end
|
158
|
-
|
159
|
-
@stream.send_push_promise(push_headers)
|
160
|
-
end
|
161
|
-
|
162
124
|
NO_RESPONSE = [
|
163
125
|
[STATUS, '500'],
|
164
126
|
]
|
@@ -50,13 +50,7 @@ module Async
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def accept_push_promise_stream(promised_stream_id, headers)
|
53
|
-
|
54
|
-
|
55
|
-
stream.response.build_request(headers)
|
56
|
-
|
57
|
-
@response.promises.enqueue(stream.response)
|
58
|
-
|
59
|
-
return stream
|
53
|
+
raise ProtocolError, "Cannot accept push promise stream!"
|
60
54
|
end
|
61
55
|
|
62
56
|
# This should be invoked from the background reader, and notifies the task waiting for the headers that we are done.
|
@@ -113,7 +107,6 @@ module Async
|
|
113
107
|
super
|
114
108
|
|
115
109
|
if @response
|
116
|
-
@response.promises.enqueue nil
|
117
110
|
@response = nil
|
118
111
|
end
|
119
112
|
|
@@ -128,7 +121,6 @@ module Async
|
|
128
121
|
|
129
122
|
@stream = stream
|
130
123
|
@request = nil
|
131
|
-
@promises = nil
|
132
124
|
end
|
133
125
|
|
134
126
|
attr :stream
|
@@ -150,10 +142,6 @@ module Async
|
|
150
142
|
!!@status
|
151
143
|
end
|
152
144
|
|
153
|
-
def promises
|
154
|
-
@promises ||= Async::Queue.new
|
155
|
-
end
|
156
|
-
|
157
145
|
def build_request(headers)
|
158
146
|
request = ::Protocol::HTTP::Request.new
|
159
147
|
request.headers = ::Protocol::HTTP::Headers.new
|
data/lib/async/http/server.rb
CHANGED
@@ -29,11 +29,11 @@ require 'protocol/http/middleware'
|
|
29
29
|
module Async
|
30
30
|
module HTTP
|
31
31
|
class Server < ::Protocol::HTTP::Middleware
|
32
|
-
def self.for(*arguments, &block)
|
33
|
-
self.new(block, *arguments)
|
32
|
+
def self.for(*arguments, **options, &block)
|
33
|
+
self.new(block, *arguments, **options)
|
34
34
|
end
|
35
35
|
|
36
|
-
def initialize(app, endpoint, protocol
|
36
|
+
def initialize(app, endpoint, protocol: endpoint.protocol, scheme: endpoint.scheme)
|
37
37
|
super(app)
|
38
38
|
|
39
39
|
@endpoint = endpoint
|
data/lib/async/http/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.54.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|
@@ -243,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
243
|
- !ruby/object:Gem::Version
|
244
244
|
version: '0'
|
245
245
|
requirements: []
|
246
|
-
rubygems_version: 3.
|
246
|
+
rubygems_version: 3.2.3
|
247
247
|
signing_key:
|
248
248
|
specification_version: 4
|
249
249
|
summary: A HTTP client and server library.
|