websocket-driver 0.8.0-java → 0.8.1-java
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 +8 -0
- data/LICENSE.md +1 -1
- data/lib/websocket/driver/draft75.rb +1 -0
- data/lib/websocket/driver/hybi.rb +4 -0
- data/lib/websocket/http/headers.rb +7 -4
- data/lib/websocket_mask.jar +0 -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: 51fb8d62186b84c908b815c0ece5099d0d951a3f2a74850f70b58ba2aa5165e5
|
|
4
|
+
data.tar.gz: 3d899c1487db01b89577d2cd29751bf982056ef95e8ee7b651aedee083a174e4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2df1d2e57d32a7dbb5d8d49a6ef987a4544a1ae01bcd28cc9ebce8bbd984bcb2a3455117850dc1d681ffeddc31578d9ca86ce4b0a55ae148d27f77234480aa16
|
|
7
|
+
data.tar.gz: 23a6a91922d289e12ca9333576016ff8194435aef939806ac927f699ead5b639264161809b7a92e9eccbc27b1b79d3ab07729017fe884f2e04345214f131fdb0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
### 0.8.1 / 2026-06-04
|
|
2
|
+
|
|
3
|
+
- Close a draft-75/76 connection if a length header grows to exceed the
|
|
4
|
+
configured max length
|
|
5
|
+
- Fail the connection if a message is larger than the configured max length
|
|
6
|
+
after extension processing
|
|
7
|
+
- Limit the total HTTP request line and headers size to 32K
|
|
8
|
+
|
|
1
9
|
### 0.8.0 / 2025-05-25
|
|
2
10
|
|
|
3
11
|
- Emit binary message as a string with `Encoding::BINARY` instead of an array
|
data/LICENSE.md
CHANGED
|
@@ -400,6 +400,10 @@ module WebSocket
|
|
|
400
400
|
|
|
401
401
|
payload = message.data
|
|
402
402
|
|
|
403
|
+
if payload.bytesize > @max_length
|
|
404
|
+
return fail(:too_large, 'WebSocket frame length too large')
|
|
405
|
+
end
|
|
406
|
+
|
|
403
407
|
case message.opcode
|
|
404
408
|
when OPCODES[:text] then
|
|
405
409
|
payload = Driver.encode(payload, Encoding::UTF_8)
|
|
@@ -2,7 +2,7 @@ module WebSocket
|
|
|
2
2
|
module HTTP
|
|
3
3
|
|
|
4
4
|
module Headers
|
|
5
|
-
|
|
5
|
+
MAX_REQUEST_SIZE = 32768
|
|
6
6
|
CR = 0x0D
|
|
7
7
|
LF = 0x0A
|
|
8
8
|
|
|
@@ -38,6 +38,7 @@ module WebSocket
|
|
|
38
38
|
attr_reader :headers
|
|
39
39
|
|
|
40
40
|
def initialize
|
|
41
|
+
@size = 0
|
|
41
42
|
@buffer = []
|
|
42
43
|
@env = {}
|
|
43
44
|
@headers = {}
|
|
@@ -54,6 +55,9 @@ module WebSocket
|
|
|
54
55
|
|
|
55
56
|
def parse(chunk)
|
|
56
57
|
chunk.each_byte do |octet|
|
|
58
|
+
@size += 1
|
|
59
|
+
return error if @size > MAX_REQUEST_SIZE
|
|
60
|
+
|
|
57
61
|
if octet == LF and @stage < 2
|
|
58
62
|
@buffer.pop if @buffer.last == CR
|
|
59
63
|
if @buffer.empty?
|
|
@@ -71,9 +75,8 @@ module WebSocket
|
|
|
71
75
|
end
|
|
72
76
|
end
|
|
73
77
|
@buffer = []
|
|
74
|
-
|
|
75
|
-
@buffer << octet
|
|
76
|
-
error if @stage < 2 and @buffer.size > MAX_LINE_LENGTH
|
|
78
|
+
elsif @stage >= 0
|
|
79
|
+
@buffer << octet
|
|
77
80
|
end
|
|
78
81
|
end
|
|
79
82
|
@env['rack.input'] = StringIO.new(string_buffer)
|
data/lib/websocket_mask.jar
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: websocket-driver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.1
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- James Coglan
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-06-04 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: base64
|