diff options
-rw-r--r-- | net/websocket.lua | 2 | ||||
-rw-r--r-- | net/websocket/frames.lua | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/net/websocket.lua b/net/websocket.lua index f8daa278..a4274eec 100644 --- a/net/websocket.lua +++ b/net/websocket.lua @@ -134,7 +134,7 @@ function websocket_methods:close(code, reason) log("debug", "closing WebSocket with code %i: %s" , code , tostring(reason)); self.readyState = 2; local handler = self.handler; - handler:write(frames.build_close(code, reason)); + handler:write(frames.build_close(code, reason, true)); -- Do not close socket straight away, wait for acknowledgement from server. self.close_timer = timer.add_task(close_timeout, close_timeout_cb, self); elseif self.readyState == 2 then diff --git a/net/websocket/frames.lua b/net/websocket/frames.lua index 8bbddd1c..fa0e130d 100644 --- a/net/websocket/frames.lua +++ b/net/websocket/frames.lua @@ -171,7 +171,7 @@ local function parse_close(data) return code, message end -local function build_close(code, message) +local function build_close(code, message, mask) local data = pack_uint16be(code); if message then assert(#message<=123, "Close reason must be <=123 bytes"); @@ -180,7 +180,7 @@ local function build_close(code, message) return build_frame({ opcode = 0x8; FIN = true; - MASK = true; + MASK = mask; data = data; }); end |