diff options
| author | Aldo Cortesi <aldo@corte.si> | 2013-04-19 17:19:26 -0700 |
|---|---|---|
| committer | Aldo Cortesi <aldo@corte.si> | 2013-04-19 17:19:26 -0700 |
| commit | 61c794e08f7b2359f3a7a7658840d3f26db25e16 (patch) | |
| tree | 12cd35054aa1d87b15a7d7f3836f89c15342bf0a /libmproxy/proxy.py | |
| parent | 793c41a5c475411df0ce8e24adec2219b6909934 (diff) | |
| parent | c6bf28f3f739fddb11b9d2dec25d0be87453ff3f (diff) | |
| download | mitmproxy-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.py | 8 |
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( |
