Created
March 20, 2017 18:46
-
-
Save MagnificentPako/1390f464480a54dff48c293023a037eb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let rb: Reader = Reader | |
rb.append(consume data) | |
var final: Bool = true | |
var opcode: Opcode = OPCLOSE | |
var datt: String = "" | |
try | |
var fin_op: U8 = rb.u8() | |
var mask_payloadlen: U8 = rb.u8() | |
final = if (((fin_op >> 7) and 0b00000001) == 1) then true else false end | |
opcode = OPTEXT | |
var use_mask: Bool = if (((mask_payloadlen >> 7) and 0b00000001) == 1) then true else false end | |
var payloadlen: U8 = (mask_payloadlen and 0b01111111) | |
var payload_type: U8 = if payloadlen == 0b01111111 then | |
1 else if payloadlen == 0b01111110 then | |
2 else | |
0 end end | |
var payload_size: U64 = match payload_type | |
| 0 => payloadlen.u64() | |
| 1 => rb.u16_be().u64() | |
| 2 => rb.u64_be().u64() | |
else 0 end | |
var mask_key = if use_mask then rb.u32_be() else None end | |
datt = String.from_array(rb.block(payload_size.usize())) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment