aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2013-04-19 17:19:26 -0700
committerAldo Cortesi <aldo@corte.si>2013-04-19 17:19:26 -0700
commit61c794e08f7b2359f3a7a7658840d3f26db25e16 (patch)
tree12cd35054aa1d87b15a7d7f3836f89c15342bf0a /libmproxy/proxy.py
parent793c41a5c475411df0ce8e24adec2219b6909934 (diff)
parentc6bf28f3f739fddb11b9d2dec25d0be87453ff3f (diff)
downloadmitmproxy-61c794e08f7b2359f3a7a7658840d3f26db25e16.tar.gz
mitmproxy-61c794e08f7b2359f3a7a7658840d3f26db25e16.tar.bz2
mitmproxy-61c794e08f7b2359f3a7a7658840d3f26db25e16.zip
Merge pull request #107 from rouli/master
Adding remote TCP and SSL setup timestamps
Diffstat (limited to 'libmproxy/proxy.py')
-rw-r--r--libmproxy/proxy.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index 3fac17b8..283072ab 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -58,9 +58,13 @@ class ServerConnection(tcp.TCPClient):
self.config = config
self.scheme, self.sni = scheme, sni
self.requestcount = 0
+ self.tcp_setup_timestamp = None
+ self.ssl_setup_timestamp = None
+
def connect(self):
tcp.TCPClient.connect(self)
+ self.tcp_setup_timestamp = time.time()
if self.scheme == "https":
clientcert = None
if self.config.clientcerts:
@@ -69,6 +73,7 @@ class ServerConnection(tcp.TCPClient):
clientcert = path
try:
self.convert_to_ssl(cert=clientcert, sni=self.sni)
+ self.ssl_setup_timestamp = time.time()
except tcp.NetLibError, v:
raise ProxyError(400, str(v))
@@ -228,6 +233,9 @@ class ProxyHandler(tcp.BaseHandler):
while 1:
sc = self.get_server_connection(cc, scheme, host, port, self.sni)
sc.send(request)
+ if sc.requestcount == 1: # add timestamps only for first request (others are not directly affected)
+ request.tcp_setup_timestamp = sc.tcp_setup_timestamp
+ request.ssl_setup_timestamp = sc.ssl_setup_timestamp
sc.rfile.reset_timestamps()
try:
httpversion, code, msg, headers, content = http.read_response(