aboutsummaryrefslogtreecommitdiffstats
path: root/pathod
diff options
context:
space:
mode:
authorThomas Kriechbaumer <thomas@kriechbaumer.name>2016-08-16 18:31:50 +0200
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2016-09-01 09:57:18 +0200
commite5b0dae7e9ef8d2ce62fc263c377c76546190825 (patch)
treed3b7257cfb0a0e66e2e7176f9d32bc16d820e618 /pathod
parentd12515f84b32b3157fa99ac3c3a7a7318f9626ba (diff)
downloadmitmproxy-e5b0dae7e9ef8d2ce62fc263c377c76546190825.tar.gz
mitmproxy-e5b0dae7e9ef8d2ce62fc263c377c76546190825.tar.bz2
mitmproxy-e5b0dae7e9ef8d2ce62fc263c377c76546190825.zip
add websockets support to mitmproxy
Diffstat (limited to 'pathod')
-rw-r--r--pathod/language/http.py4
-rw-r--r--pathod/pathoc.py2
-rw-r--r--pathod/pathod.py9
-rw-r--r--pathod/protocols/websockets.py2
4 files changed, 9 insertions, 8 deletions
diff --git a/pathod/language/http.py b/pathod/language/http.py
index fdc5bba6..46027ca3 100644
--- a/pathod/language/http.py
+++ b/pathod/language/http.py
@@ -198,7 +198,7 @@ class Response(_HTTPMessage):
1,
StatusCode(101)
)
- headers = netlib.websockets.WebsocketsProtocol.server_handshake_headers(
+ headers = netlib.websockets.server_handshake_headers(
settings.websocket_key
)
for i in headers.fields:
@@ -310,7 +310,7 @@ class Request(_HTTPMessage):
1,
Method("get")
)
- for i in netlib.websockets.WebsocketsProtocol.client_handshake_headers().fields:
+ for i in netlib.websockets.client_handshake_headers().fields:
if not get_header(i[0], self.headers):
tokens.append(
Header(
diff --git a/pathod/pathoc.py b/pathod/pathoc.py
index 5831ba3e..a8923013 100644
--- a/pathod/pathoc.py
+++ b/pathod/pathoc.py
@@ -139,7 +139,7 @@ class WebsocketFrameReader(basethread.BaseThread):
except exceptions.TcpDisconnect:
return
self.frames_queue.put(frm)
- log("<< %s" % frm.header.human_readable())
+ log("<< %s" % repr(frm.header))
if self.ws_read_limit is not None:
self.ws_read_limit -= 1
starttime = time.time()
diff --git a/pathod/pathod.py b/pathod/pathod.py
index 7087cba6..bd0feb73 100644
--- a/pathod/pathod.py
+++ b/pathod/pathod.py
@@ -173,12 +173,13 @@ class PathodHandler(tcp.BaseHandler):
retlog["cipher"] = self.get_current_cipher()
m = utils.MemBool()
- websocket_key = websockets.WebsocketsProtocol.check_client_handshake(headers)
- self.settings.websocket_key = websocket_key
+
+ valid_websockets_handshake = websockets.check_handshake(headers)
+ self.settings.websocket_key = websockets.get_client_key(headers)
# If this is a websocket initiation, we respond with a proper
# server response, unless over-ridden.
- if websocket_key:
+ if valid_websockets_handshake:
anchor_gen = language.parse_pathod("ws")
else:
anchor_gen = None
@@ -225,7 +226,7 @@ class PathodHandler(tcp.BaseHandler):
spec,
lg
)
- if nexthandler and websocket_key:
+ if nexthandler and valid_websockets_handshake:
self.protocol = protocols.websockets.WebsocketsProtocol(self)
return self.protocol.handle_websocket, retlog
else:
diff --git a/pathod/protocols/websockets.py b/pathod/protocols/websockets.py
index a34e75e8..df83461a 100644
--- a/pathod/protocols/websockets.py
+++ b/pathod/protocols/websockets.py
@@ -20,7 +20,7 @@ class WebsocketsProtocol:
lg("Error reading websocket frame: %s" % e)
return None, None
ended = time.time()
- lg(frm.human_readable())
+ lg(repr(frm))
retlog = dict(
type="inbound",
protocol="websockets",