File tree Expand file tree Collapse file tree 1 file changed +6
-5
lines changed Expand file tree Collapse file tree 1 file changed +6
-5
lines changed Original file line number Diff line number Diff line change @@ -80,18 +80,19 @@ extension ByteBuffer {
80
80
extension ByteBuffer {
81
81
/// Returns packet length if there are enough readable bytes.
82
82
mutating func checkPacketLength( ) throws -> Int32 ? {
83
- // erase sequence id so we can easily parse 4 byte integer
84
- set ( integer: Byte ( 0 ) , at: readerIndex + 3 )
85
- guard let length = peekInteger ( endianness: . little, as: Int32 . self) else {
83
+ guard var length = peekInteger ( endianness: . little, as: Int32 . self) else {
86
84
return nil
87
85
}
86
+ // erase sequence id
87
+ length = length & 0x00FFFFFF
88
88
if readableBytes >= length + 4 /* must be enough bytes to read length too */ {
89
- return try requireInteger ( endianness: . little)
89
+ moveReaderIndex ( forwardBy: 4 )
90
+ return length
90
91
} else {
91
92
return nil
92
93
}
93
94
}
94
-
95
+
95
96
func peekInteger< T> ( endianness: Endianness = . big, as type: T . Type = T . self, skipping: Int = 0 ) -> T ? where T: FixedWidthInteger {
96
97
guard readableBytes >= MemoryLayout < T > . size + skipping else {
97
98
return nil
You can’t perform that action at this time.
0 commit comments