aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/protocol
diff options
context:
space:
mode:
authorSandor Nemes <snemes@users.noreply.github.com>2016-01-17 21:24:47 +0100
committerSandor Nemes <snemes@users.noreply.github.com>2016-01-17 21:24:47 +0100
commit192f0339674d1b276a0866eddcebb9c93036ae2b (patch)
treebbf4faa75bb330d7d013e17d54f6e5b33ffcbb78 /libmproxy/protocol
parent2753af0ec72e542d5a4dc3e5e200bd1638b2b095 (diff)
parent0f54f2990c0a32960ec5c82c620f79c68ad5f4b6 (diff)
downloadmitmproxy-192f0339674d1b276a0866eddcebb9c93036ae2b.tar.gz
mitmproxy-192f0339674d1b276a0866eddcebb9c93036ae2b.tar.bz2
mitmproxy-192f0339674d1b276a0866eddcebb9c93036ae2b.zip
Merge branch 'master' into master
Diffstat (limited to 'libmproxy/protocol')
-rw-r--r--libmproxy/protocol/rawtcp.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/libmproxy/protocol/rawtcp.py b/libmproxy/protocol/rawtcp.py
index 5f08fd17..ccd3c7ec 100644
--- a/libmproxy/protocol/rawtcp.py
+++ b/libmproxy/protocol/rawtcp.py
@@ -13,6 +13,15 @@ from ..exceptions import ProtocolException
from .base import Layer
+class TcpMessage(object):
+ def __init__(self, client_conn, server_conn, sender, receiver, message):
+ self.client_conn = client_conn
+ self.server_conn = server_conn
+ self.sender = sender
+ self.receiver = receiver
+ self.message = message
+
+
class RawTCPLayer(Layer):
chunk_size = 4096
@@ -50,7 +59,13 @@ class RawTCPLayer(Layer):
return
continue
- dst.sendall(buf[:size])
+ tcp_message = TcpMessage(
+ self.client_conn, self.server_conn,
+ self.client_conn if dst == server else self.server_conn,
+ self.server_conn if dst == server else self.client_conn,
+ buf[:size].tobytes())
+ self.channel.ask("tcp_message", tcp_message)
+ dst.sendall(tcp_message.message)
if self.logging:
# log messages are prepended with the client address,
@@ -59,7 +74,7 @@ class RawTCPLayer(Layer):
direction = "-> tcp -> {}".format(repr(self.server_conn.address))
else:
direction = "<- tcp <- {}".format(repr(self.server_conn.address))
- data = clean_bin(buf[:size].tobytes())
+ data = clean_bin(tcp_message.message)
self.log(
"{}\r\n{}".format(direction, data),
"info"