From 7234cb163823af72dd17cd92c81f731184201cc2 Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Thu, 5 Oct 2023 18:53:01 -0600 Subject: [PATCH] Use code when rejecting connection Fixed #486 --- daphne/ws_protocol.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/daphne/ws_protocol.py b/daphne/ws_protocol.py index 975b1a9..f3234c9 100755 --- a/daphne/ws_protocol.py +++ b/daphne/ws_protocol.py @@ -185,7 +185,7 @@ class WebSocketProtocol(WebSocketServerProtocol): self.serverAccept(message.get("subprotocol", None)) elif message["type"] == "websocket.close": if self.state == self.STATE_CONNECTING: - self.serverReject() + self.serverReject(code=message.get("code", 403)) else: self.serverClose(code=message.get("code", None)) elif message["type"] == "websocket.send": @@ -222,12 +222,12 @@ class WebSocketProtocol(WebSocketServerProtocol): del self.handshake_deferred logger.debug("WebSocket %s accepted by application", self.client_addr) - def serverReject(self): + def serverReject(self, code): """ Called when we get a message saying to reject the connection. """ self.handshake_deferred.errback( - ConnectionDeny(code=403, reason="Access denied") + ConnectionDeny(code=code, reason="Connection closed") ) del self.handshake_deferred self.server.protocol_disconnected(self) @@ -284,7 +284,7 @@ class WebSocketProtocol(WebSocketServerProtocol): # If we're still connecting, deny the connection if self.state == self.STATE_CONNECTING: if self.duration() > self.server.websocket_connect_timeout: - self.serverReject() + self.serverReject(408) elif self.state == self.STATE_OPEN: if (time.time() - self.last_ping) > self.server.ping_interval: self._sendAutoPing()