diff options
author | Chandler Abraham <cabraham@twitter.com> | 2015-04-13 13:36:09 -0700 |
---|---|---|
committer | Chandler Abraham <cabraham@twitter.com> | 2015-04-13 13:36:09 -0700 |
commit | 2d72a1b6b56f1643cd1d8be59eee55aa7ca2f17f (patch) | |
tree | 8e2831fdd659174703f00b4b1cd008cfb70185a2 /netlib | |
parent | 0ed2a290639833d772b89cf333577820e84f8204 (diff) | |
download | mitmproxy-2d72a1b6b56f1643cd1d8be59eee55aa7ca2f17f.tar.gz mitmproxy-2d72a1b6b56f1643cd1d8be59eee55aa7ca2f17f.tar.bz2 mitmproxy-2d72a1b6b56f1643cd1d8be59eee55aa7ca2f17f.zip |
100% test coverage, though still need plenty more
Diffstat (limited to 'netlib')
-rw-r--r-- | netlib/http.py | 14 | ||||
-rw-r--r-- | netlib/websockets/implementations.py | 10 | ||||
-rw-r--r-- | netlib/websockets/websockets.py | 9 |
3 files changed, 6 insertions, 27 deletions
diff --git a/netlib/http.py b/netlib/http.py index 2c72621d..26438863 100644 --- a/netlib/http.py +++ b/netlib/http.py @@ -29,20 +29,6 @@ def _is_valid_host(host): return None return True -def is_successful_upgrade(request, response): - """ - determines if a client and server successfully agreed to an HTTP protocol upgrade - - https://developer.mozilla.org/en-US/docs/Web/HTTP/Protocol_upgrade_mechanism - """ - http_switching_protocols_code = 101 - - if request and response: - responseUpgrade = request.headers.get("Upgrade") - requestUpgrade = response.headers.get("Upgrade") - if response.code == http_switching_protocols_code and responseUpgrade == requestUpgrade: - return requestUpgrade[0] if len(requestUpgrade) > 0 else None - return None def parse_url(url): """ diff --git a/netlib/websockets/implementations.py b/netlib/websockets/implementations.py index 73a84690..1ded3b85 100644 --- a/netlib/websockets/implementations.py +++ b/netlib/websockets/implementations.py @@ -65,9 +65,6 @@ class WebSocketsClient(tcp.TCPClient): self.wfile.flush() server_handshake = ws.read_handshake(self.rfile.read, 1) - - if not server_handshake: - self.close() server_nounce = ws.process_handshake_from_server(server_handshake, self.client_nounce) @@ -75,11 +72,8 @@ class WebSocketsClient(tcp.TCPClient): self.close() def read_next_message(self): - try: - return ws.WebSocketsFrame.from_byte_stream(self.rfile.read).payload - except IndexError: - self.close() - + return ws.WebSocketsFrame.from_byte_stream(self.rfile.read).payload + def send_message(self, message): frame = ws.WebSocketsFrame.default(message, from_client = True) self.wfile.write(frame.safe_to_bytes()) diff --git a/netlib/websockets/websockets.py b/netlib/websockets/websockets.py index cf9a68aa..ea3db21d 100644 --- a/netlib/websockets/websockets.py +++ b/netlib/websockets/websockets.py @@ -158,11 +158,10 @@ class WebSocketsFrame(object): ("actual_payload_length - " + str(self.actual_payload_length))]) def safe_to_bytes(self): - try: - assert self.is_valid() - return self.to_bytes() - except: - raise WebSocketFrameValidationException() + if self.is_valid(): + return self.to_bytes() + else: + raise WebSocketFrameValidationException() def to_bytes(self): """ |