diff --git a/src/websocket/frame.lua b/src/websocket/frame.lua index ffaceb6..4f7df51 100644 --- a/src/websocket/frame.lua +++ b/src/websocket/frame.lua @@ -25,7 +25,10 @@ local bits = function(...) return n end -local bit_7 = bits(7) +local bit_7 = bits(7) +local bit_6 = bits(6) +local bit_5 = bits(5) +local bit_4 = bits(4) local bit_0_3 = bits(0,1,2,3) local bit_0_6 = bits(0,1,2,3,4,5,6) @@ -147,7 +150,10 @@ local decode = function(encoded) end bytes = bytes + payload end - return decoded,fin,opcode,encoded_bak:sub(bytes+1),mask + local rsv1 = band(header,bit_6) ~= 0 + local rsv2 = band(header,bit_5) ~= 0 + local rsv3 = band(header,bit_4) ~= 0 + return decoded,fin,opcode,encoded_bak:sub(bytes+1),mask,rsv1,rsv2,rsv3 end local encode_close = function(code,reason)