protocol-http2 0.26.0 → 0.26.1
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/protocol/http2/error.rb +35 -1
- data/lib/protocol/http2/stream.rb +2 -2
- data/lib/protocol/http2/version.rb +1 -1
- data/readme.md +4 -5
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: 88d933bf4cd35251d305cd05fa6654acfbeee446982af751bd221e976dff2313
|
|
4
|
+
data.tar.gz: e78f3a10d74fccfd63d098af1910c0b846b093aeb446860da5105e306410b401
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2a037ad5d8c96c9c8dc6f2352a7ebdeaf3b0b52354c408e965cb689439eb5d94ec2dc9e1d4ef27903c5334c1310a852d6896cc9f52d9f60d917d92e230ffae1
|
|
7
|
+
data.tar.gz: 5472ccf116f877b341d5793f7166656c924d6c6c8ca0a8080c86856834109ddc8bd0993a41e080f50d80cbaeffb9453c50731dbc96a97007ea1e7434d83d1f39
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/lib/protocol/http2/error.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2019-
|
|
4
|
+
# Copyright, 2019-2026, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
require "protocol/http/error"
|
|
7
7
|
|
|
@@ -50,6 +50,33 @@ module Protocol
|
|
|
50
50
|
|
|
51
51
|
# The endpoint requires that HTTP/1.1 be used instead of HTTP/2.
|
|
52
52
|
HTTP_1_1_REQUIRED = 0xD
|
|
53
|
+
|
|
54
|
+
MESSAGES = {
|
|
55
|
+
NO_ERROR => "No error.",
|
|
56
|
+
PROTOCOL_ERROR => "Protocol error!",
|
|
57
|
+
INTERNAL_ERROR => "Internal error!",
|
|
58
|
+
FLOW_CONTROL_ERROR => "Flow control error!",
|
|
59
|
+
SETTINGS_TIMEOUT => "Settings timeout!",
|
|
60
|
+
STREAM_CLOSED => "Stream closed!",
|
|
61
|
+
FRAME_SIZE_ERROR => "Frame size error!",
|
|
62
|
+
REFUSED_STREAM => "Stream refused.",
|
|
63
|
+
CANCEL => "Stream cancelled.",
|
|
64
|
+
COMPRESSION_ERROR => "Compression error!",
|
|
65
|
+
CONNECT_ERROR => "Connect error!",
|
|
66
|
+
ENHANCE_YOUR_CALM => "Enhance your calm!",
|
|
67
|
+
INADEQUATE_SECURITY => "Inadequate security!",
|
|
68
|
+
HTTP_1_1_REQUIRED => "HTTP/1.1 required.",
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
# Get the message for a given HTTP/2 error code.
|
|
72
|
+
# @parameter code [Integer] The HTTP/2 error code.
|
|
73
|
+
# @returns [String] The error message.
|
|
74
|
+
def self.message_for(code)
|
|
75
|
+
return MESSAGES.fetch(code) do
|
|
76
|
+
# Unknown error codes are allowed by the protocol, but don't have a static message.
|
|
77
|
+
"Unknown code: #{code}!"
|
|
78
|
+
end
|
|
79
|
+
end
|
|
53
80
|
end
|
|
54
81
|
|
|
55
82
|
# Raised if connection header is missing or invalid indicating that
|
|
@@ -62,6 +89,13 @@ module Protocol
|
|
|
62
89
|
# which signals termination of the current connection. You *cannot*
|
|
63
90
|
# recover from this exception, or any exceptions subclassed from it.
|
|
64
91
|
class ProtocolError < Error
|
|
92
|
+
# Build a protocol error for a given HTTP/2 error code.
|
|
93
|
+
# @parameter code [Integer] The HTTP/2 error code.
|
|
94
|
+
# @returns [ProtocolError] The protocol error.
|
|
95
|
+
def self.for(code)
|
|
96
|
+
return self.new(Error.message_for(code), code)
|
|
97
|
+
end
|
|
98
|
+
|
|
65
99
|
# Initialize a protocol error with message and error code.
|
|
66
100
|
# @parameter message [String] The error message.
|
|
67
101
|
# @parameter code [Integer] The HTTP/2 error code.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2019-
|
|
4
|
+
# Copyright, 2019-2026, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
require_relative "connection"
|
|
7
7
|
|
|
@@ -253,7 +253,7 @@ module Protocol
|
|
|
253
253
|
if error_code == REFUSED_STREAM
|
|
254
254
|
error = ::Protocol::HTTP::RefusedError.new("Stream refused.")
|
|
255
255
|
else
|
|
256
|
-
error = StreamError.
|
|
256
|
+
error = StreamError.for(error_code)
|
|
257
257
|
end
|
|
258
258
|
end
|
|
259
259
|
|
data/readme.md
CHANGED
|
@@ -14,6 +14,10 @@ Please see the [project documentation](https://socketry.github.io/protocol-http2
|
|
|
14
14
|
|
|
15
15
|
Please see the [project releases](https://socketry.github.io/protocol-http2/releases/index) for all releases.
|
|
16
16
|
|
|
17
|
+
### v0.26.1
|
|
18
|
+
|
|
19
|
+
- Improve `StreamError` messages for HTTP/2 stream reset error codes.
|
|
20
|
+
|
|
17
21
|
### v0.26.0
|
|
18
22
|
|
|
19
23
|
- On RST\_STREAM with REFUSED\_STREAM, close the stream with `Protocol::HTTP::RefusedError` instead of `StreamError`.
|
|
@@ -55,11 +59,6 @@ Please see the [project releases](https://socketry.github.io/protocol-http2/rele
|
|
|
55
59
|
|
|
56
60
|
- Reduced the number of window update frames sent to improve network efficiency.
|
|
57
61
|
|
|
58
|
-
### v0.19.3
|
|
59
|
-
|
|
60
|
-
- Improved window update frame handling and performance optimizations.
|
|
61
|
-
- Better implementation of `Window#inspect` for debugging.
|
|
62
|
-
|
|
63
62
|
## See Also
|
|
64
63
|
|
|
65
64
|
- [Async::HTTP](https://github.com/socketry/async-http) - A high-level HTTP client and server implementation.
|
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: protocol-http2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.26.
|
|
4
|
+
version: 0.26.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
125
|
requirements: []
|
|
126
|
-
rubygems_version: 4.0.
|
|
126
|
+
rubygems_version: 4.0.10
|
|
127
127
|
specification_version: 4
|
|
128
128
|
summary: A low level implementation of the HTTP/2 protocol.
|
|
129
129
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|