aws-eventstream 1.3.1 → 1.3.2
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/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/lib/aws-eventstream/encoder.rb +13 -1
- data/lib/aws-eventstream/errors.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f7607916d853599e76825eca92307793809152833c3e03d46668641662ed989
|
4
|
+
data.tar.gz: 7af13e44c46b8428daf19e6ecb42af386ec1b99ec49dbd692969d3a4ef161469
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7dc49237b6a85046c15d076ff8c7245745ae661970686ead73c1975cd801802fc8d65255657e41c957cc7d05809820608ac5c4f0f18518387aa2390e6a731e6a
|
7
|
+
data.tar.gz: 184af3549253e984f4b7e64db8dd59216ed42e0b5c945fcf79bff50706acdc53b57707ded32dac101a6078dc09335d3ce763fb7049e95d9fa75620049a16b144
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.2
|
@@ -41,6 +41,12 @@ module Aws
|
|
41
41
|
# and 4 bytes total message crc checksum
|
42
42
|
OVERHEAD_LENGTH = 16
|
43
43
|
|
44
|
+
# Maximum header length allowed (after encode) 128kb
|
45
|
+
MAX_HEADERS_LENGTH = 1024 * 128
|
46
|
+
|
47
|
+
# Maximum payload length allowed (after encode) 24mb
|
48
|
+
MAX_PAYLOAD_LENGTH = 1024 * 1024 * 24
|
49
|
+
|
44
50
|
# Encodes Aws::EventStream::Message to output IO when
|
45
51
|
# provided, else return the encoded binary string
|
46
52
|
#
|
@@ -75,6 +81,9 @@ module Aws
|
|
75
81
|
encoded_header = encode_headers(message)
|
76
82
|
header_length = encoded_header.bytesize
|
77
83
|
# encode payload
|
84
|
+
if message.payload.length > MAX_PAYLOAD_LENGTH
|
85
|
+
raise Aws::EventStream::Errors::EventPayloadLengthExceedError.new
|
86
|
+
end
|
78
87
|
encoded_payload = message.payload.read
|
79
88
|
total_length = header_length + encoded_payload.bytesize + OVERHEAD_LENGTH
|
80
89
|
|
@@ -115,7 +124,10 @@ module Aws
|
|
115
124
|
pattern ? [value.value].pack(pattern) : value.value,
|
116
125
|
].pack('a*a*a*')
|
117
126
|
end
|
118
|
-
header_entries.join
|
127
|
+
header_entries.join.tap do |encoded_header|
|
128
|
+
break encoded_header if encoded_header.bytesize <= MAX_HEADERS_LENGTH
|
129
|
+
raise Aws::EventStream::Errors::EventHeadersLengthExceedError.new
|
130
|
+
end
|
119
131
|
end
|
120
132
|
|
121
133
|
private
|
@@ -32,6 +32,18 @@ module Aws
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
+
class EventPayloadLengthExceedError < RuntimeError
|
36
|
+
def initialize(*args)
|
37
|
+
super("Payload length of a message should be under 24mb.")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class EventHeadersLengthExceedError < RuntimeError
|
42
|
+
def initialize(*args)
|
43
|
+
super("Encoded headers length of a message should be under 128kb.")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
35
47
|
end
|
36
48
|
end
|
37
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-eventstream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amazon Web Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Amazon Web Services event stream library. Decodes and encodes binary
|
14
14
|
stream under `vnd.amazon.event-stream` content-type
|