Skip to content

Commit

Permalink
Merge pull request #1335 from grafuls/master
Browse files Browse the repository at this point in the history
Added logging for debugging and fixes for flake8
  • Loading branch information
bdarnell committed Feb 12, 2015
2 parents 9b35208 + ace7dd6 commit 1188c01
Showing 1 changed file with 23 additions and 10 deletions.
33 changes: 23 additions & 10 deletions tornado/websocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
Removed support for the draft 76 protocol version.
"""

from __future__ import absolute_import, division, print_function, with_statement
from __future__ import (absolute_import, division,
print_function, with_statement)
# Author: Jacob Kristhammar, 2010

import base64
Expand Down Expand Up @@ -144,16 +145,22 @@ def get(self, *args, **kwargs):
# Upgrade header should be present and should be equal to WebSocket
if self.request.headers.get("Upgrade", "").lower() != 'websocket':
self.set_status(400)
self.finish("Can \"Upgrade\" only to \"WebSocket\".")
log_msg = "Can \"Upgrade\" only to \"WebSocket\"."
self.finish(log_msg)
gen_log.debug(log_msg)
return

# Connection header should be upgrade. Some proxy servers/load balancers
# Connection header should be upgrade.
# Some proxy servers/load balancers
# might mess with it.
headers = self.request.headers
connection = map(lambda s: s.strip().lower(), headers.get("Connection", "").split(","))
connection = map(lambda s: s.strip().lower(),
headers.get("Connection", "").split(","))
if 'upgrade' not in connection:
self.set_status(400)
self.finish("\"Connection\" must be \"Upgrade\".")
log_msg = "\"Connection\" must be \"Upgrade\"."
self.finish(log_msg)
gen_log.debug(log_msg)
return

# Handle WebSocket Origin naming convention differences
Expand All @@ -170,7 +177,9 @@ def get(self, *args, **kwargs):
# did not come from a browser and that it can be passed on.
if origin is not None and not self.check_origin(origin):
self.set_status(403)
self.finish("Cross origin websockets not allowed")
log_msg = "Cross origin websockets not allowed"
self.finish(log_msg)
gen_log.debug(log_msg)
return

self.stream = self.request.connection.detach()
Expand Down Expand Up @@ -511,7 +520,8 @@ def accept_connection(self):
self._handle_websocket_headers()
self._accept_connection()
except ValueError:
gen_log.debug("Malformed WebSocket request received", exc_info=True)
gen_log.debug("Malformed WebSocket request received",
exc_info=True)
self._abort()
return

Expand Down Expand Up @@ -547,7 +557,8 @@ def _accept_connection(self):
selected = self.handler.select_subprotocol(subprotocols)
if selected:
assert selected in subprotocols
subprotocol_header = "Sec-WebSocket-Protocol: %s\r\n" % selected
subprotocol_header = ("Sec-WebSocket-Protocol: %s\r\n"
% selected)

extension_header = ''
extensions = self._parse_extensions_header(self.request.headers)
Expand Down Expand Up @@ -715,7 +726,8 @@ def _on_frame_start(self, data):
if self._masked_frame:
self.stream.read_bytes(4, self._on_masking_key)
else:
self.stream.read_bytes(self._frame_length, self._on_frame_data)
self.stream.read_bytes(self._frame_length,
self._on_frame_data)
elif payloadlen == 126:
self.stream.read_bytes(2, self._on_frame_length_16)
elif payloadlen == 127:
Expand Down Expand Up @@ -749,7 +761,8 @@ def _on_masking_key(self, data):
self._wire_bytes_in += len(data)
self._frame_mask = data
try:
self.stream.read_bytes(self._frame_length, self._on_masked_frame_data)
self.stream.read_bytes(self._frame_length,
self._on_masked_frame_data)
except StreamClosedError:
self._abort()

Expand Down

0 comments on commit 1188c01

Please sign in to comment.