aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/libmproxy/platform/linux.py
diff options
context:
space:
mode:
Diffstat (limited to 'mitmproxy/libmproxy/platform/linux.py')
-rw-r--r--mitmproxy/libmproxy/platform/linux.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/mitmproxy/libmproxy/platform/linux.py b/mitmproxy/libmproxy/platform/linux.py
new file mode 100644
index 00000000..38bfbe42
--- /dev/null
+++ b/mitmproxy/libmproxy/platform/linux.py
@@ -0,0 +1,14 @@
+import socket
+import struct
+
+# Python socket module does not have this constant
+SO_ORIGINAL_DST = 80
+
+
+class Resolver(object):
+
+ def original_addr(self, csock):
+ odestdata = csock.getsockopt(socket.SOL_IP, SO_ORIGINAL_DST, 16)
+ _, port, a1, a2, a3, a4 = struct.unpack("!HHBBBBxxxxxxxx", odestdata)
+ address = "%d.%d.%d.%d" % (a1, a2, a3, a4)
+ return address, port