aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/pathoc.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-09-26 10:38:47 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-09-26 10:38:47 +1200
commita69d60208717db775ca68bbd1cd8a1af76082495 (patch)
tree2ebc4a62666079d61e2bb30616f5217460612cce /libpathod/pathoc.py
parent0a5d4fbbbb06a4e6c5e6172b353aa878aaa6e0c6 (diff)
downloadmitmproxy-a69d60208717db775ca68bbd1cd8a1af76082495.tar.gz
mitmproxy-a69d60208717db775ca68bbd1cd8a1af76082495.tar.bz2
mitmproxy-a69d60208717db775ca68bbd1cd8a1af76082495.zip
Hex and verbatim output of requests.
This works by sniffing traffic through the socket, so always gives us the exact traffic sent upstream.
Diffstat (limited to 'libpathod/pathoc.py')
-rw-r--r--libpathod/pathoc.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py
index 57bff46b..b283c94e 100644
--- a/libpathod/pathoc.py
+++ b/libpathod/pathoc.py
@@ -1,5 +1,6 @@
import sys, os
from netlib import tcp, http
+import netlib.utils
import rparse, utils
class PathocError(Exception): pass
@@ -49,15 +50,25 @@ class Pathoc(tcp.TCPClient):
for i in reqs:
try:
r = rparse.parse_request(self.settings, i)
+ if showreq:
+ self.wfile.start_log()
req = r.serve(self.wfile, None, self.host)
if explain:
- print >> fp, ">>", req["method"], repr(req["path"])
+ print >> fp, ">> ", req["method"], repr(req["path"])
for a in req["actions"]:
print >> fp, "\t",
for x in a:
print >> fp, x,
print >> fp
- print req
+ if showreq:
+ data = self.wfile.get_log()
+ if hexdump:
+ print >> fp, ">> Request (hex dump):"
+ for line in netlib.utils.hexdump(data):
+ print >> fp, "\t%s %s %s"%line
+ else:
+ print >> fp, ">> Request (unprintables escaped):"
+ print >> fp, netlib.utils.cleanBin(data)
self.wfile.flush()
resp = http.read_response(self.rfile, r.method, None)
except rparse.ParseException, v: