From a348b8bf761019d0eaafd8e710b457762e0b41a8 Mon Sep 17 00:00:00 2001 From: totaam Date: Sat, 23 Feb 2019 12:37:16 +0700 Subject: [PATCH] fix handling of code: invalid unpacking, undefined variable in error path, missing argument --- websockify/websocket.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/websockify/websocket.py b/websockify/websocket.py index 3ea0328..c8226cc 100644 --- a/websockify/websocket.py +++ b/websockify/websocket.py @@ -599,7 +599,7 @@ class WebSocket(object): code = None reason = None if len(frame["payload"]) >= 2: - code = struct.unpack(">H", frame["payload"][:2]) + code = struct.unpack(">H", frame["payload"][:2])[0] if len(frame["payload"]) > 2: reason = frame["payload"][2:] try: @@ -609,14 +609,14 @@ class WebSocket(object): continue if code is None: - self.close_code = 1005 + self.close_code = code = 1005 self.close_reason = "No close status code specified by peer" else: self.close_code = code if reason is not None: self.close_reason = reason - self.shutdown(code, reason) + self.shutdown(None, code, reason) return None elif frame["opcode"] == 0x9: if not frame["fin"]: