Skip to content

Commit 68aae6d

Browse files
Remove event stream max payload size and headers length checks (#3188)
* Remove event stream max payload size and headers length checks * Add changelog entry * Remove unused error classes
1 parent a98b3e8 commit 68aae6d

File tree

4 files changed

+9
-39
lines changed

4 files changed

+9
-39
lines changed

gems/aws-eventstream/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Unreleased Changes
22
------------------
33

4+
* Issue - Remove event stream max payload size and headers length checks.
5+
46
1.3.0 (2023-11-22)
57
------------------
68

gems/aws-eventstream/lib/aws-eventstream/encoder.rb

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@ class Encoder
4141
# and 4 bytes total message crc checksum
4242
OVERHEAD_LENGTH = 16
4343

44-
# Maximum header length allowed (after encode) 128kb
45-
MAX_HEADERS_LENGTH = 131072
46-
47-
# Maximum payload length allowed (after encode) 16mb
48-
MAX_PAYLOAD_LENGTH = 16777216
49-
5044
# Encodes Aws::EventStream::Message to output IO when
5145
# provided, else return the encoded binary string
5246
#
@@ -81,9 +75,6 @@ def encode_message(message)
8175
encoded_header = encode_headers(message)
8276
header_length = encoded_header.bytesize
8377
# encode payload
84-
if message.payload.length > MAX_PAYLOAD_LENGTH
85-
raise Aws::EventStream::Errors::EventPayloadLengthExceedError.new
86-
end
8778
encoded_payload = message.payload.read
8879
total_length = header_length + encoded_payload.bytesize + OVERHEAD_LENGTH
8980

@@ -124,10 +115,7 @@ def encode_headers(message)
124115
pattern ? [value.value].pack(pattern) : value.value,
125116
].pack('a*a*a*')
126117
end
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
118+
header_entries.join
131119
end
132120

133121
private

gems/aws-eventstream/lib/aws-eventstream/errors.rb

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,6 @@ def initialize(*args)
3232
end
3333
end
3434

35-
class EventPayloadLengthExceedError < RuntimeError
36-
def initialize(*args)
37-
super("Payload length of a message should be under 16mb.")
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-
4735
end
4836
end
4937
end

gems/aws-eventstream/spec/encoder_spec.rb

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,25 @@ module EventStream
2525
expect(test_io.string.freeze).to eq(expectation)
2626
end
2727
end
28-
end
29-
30-
describe '#encode error' do
3128

32-
it 'raises an error when payload exceeds' do
33-
payload = double('payload', :length => 16777217)
29+
it 'encodes large payloads' do
3430
message = Aws::EventStream::Message.new(
3531
headers: {},
36-
payload: payload
32+
payload: StringIO.new('.' * 24 * 1024 * 1024)
3733
)
38-
expect {
39-
Encoder.new.encode(message)
40-
}.to raise_error(Aws::EventStream::Errors::EventPayloadLengthExceedError)
34+
Encoder.new.encode(message)
4135
end
4236

43-
it 'raises an error when encoded headers exceeds' do
37+
it 'encodes long headers' do
4438
headers = {}
4539
headers['foo'] = Aws::EventStream::HeaderValue.new(
46-
value: '*' * 131073, type: 'string'
40+
value: '*' * 131_073, type: 'string'
4741
)
4842
message = Aws::EventStream::Message.new(
4943
headers: headers,
5044
payload: StringIO.new
5145
)
52-
expect {
53-
Encoder.new.encode(message)
54-
}.to raise_error(Aws::EventStream::Errors::EventHeadersLengthExceedError)
46+
Encoder.new.encode(message)
5547

5648
end
5749

0 commit comments

Comments
 (0)