diff options
author | Maximilian Hils <git@maximilianhils.com> | 2014-08-18 00:55:30 +0200 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2014-08-18 00:55:30 +0200 |
commit | 5b7e19a77e12ffac2e699d2dc92f96f90114ee01 (patch) | |
tree | a3c4923d7bf43fd08a013ec47a055453390702cc | |
parent | 623cbd4e5178833b06d47e6b1a2a146b7f0e85ed (diff) | |
download | mitmproxy-5b7e19a77e12ffac2e699d2dc92f96f90114ee01.tar.gz mitmproxy-5b7e19a77e12ffac2e699d2dc92f96f90114ee01.tar.bz2 mitmproxy-5b7e19a77e12ffac2e699d2dc92f96f90114ee01.zip |
fix #327
-rw-r--r-- | libmproxy/protocol/http.py | 19 | ||||
-rw-r--r-- | libmproxy/proxy/connection.py | 20 |
2 files changed, 39 insertions, 0 deletions
diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py index 21d2c7ea..b8eca7d8 100644 --- a/libmproxy/protocol/http.py +++ b/libmproxy/protocol/http.py @@ -261,6 +261,9 @@ class HTTPRequest(HTTPMessage): f._load_state(state) return f + def __repr__(self): + return "<HTTPRequest: {0}>".format(self._assemble_first_line(self.form_in)[:-9]) + @classmethod def from_stream(cls, rfile, include_body=True, body_size_limit=None): """ @@ -632,6 +635,14 @@ class HTTPResponse(HTTPMessage): f._load_state(state) return f + def __repr__(self): + return "<HTTPResponse: {code} {msg} ({contenttype}, {size})>".format( + code=self.code, + msg=self.msg, + contenttype=self.headers.get_first("content-type", "?"), + size=utils.pretty_size(len(self.content)) + ) + @classmethod def from_stream(cls, rfile, request_method, include_body=True, body_size_limit=None): """ @@ -803,6 +814,14 @@ class HTTPFlow(Flow): f._load_state(state) return f + def __repr__(self): + s = "<HTTPFlow" + for a in ("request", "response", "error", "client_conn", "server_conn"): + if getattr(self, a, False): + s += "\r\n %s = {flow.%s}" % (a,a) + s += ">" + return s.format(flow=self) + def copy(self): f = super(HTTPFlow, self).copy() if self.request: diff --git a/libmproxy/proxy/connection.py b/libmproxy/proxy/connection.py index a19e3e71..a269dab1 100644 --- a/libmproxy/proxy/connection.py +++ b/libmproxy/proxy/connection.py @@ -22,6 +22,13 @@ class ClientConnection(tcp.BaseHandler, stateobject.SimpleStateObject): self.timestamp_end = None self.timestamp_ssl_setup = None + def __repr__(self): + return "<ClientConnection: {ssl}{host}:{port}>".format( + ssl="[ssl] " if self.ssl_established else "", + host=self.address.host, + port=self.address.port + ) + _stateobject_attributes = dict( timestamp_start=float, timestamp_end=float, @@ -76,6 +83,19 @@ class ServerConnection(tcp.TCPClient, stateobject.SimpleStateObject): self.timestamp_tcp_setup = None self.timestamp_ssl_setup = None + def __repr__(self): + if self.ssl_established and self.sni: + ssl = "[ssl: {0}] ".format(self.sni) + elif self.ssl_established: + ssl = "[ssl] " + else: + ssl = "" + return "<ServerConnection: {ssl}{host}:{port}>".format( + ssl=ssl, + host=self.address.host, + port=self.address.port + ) + _stateobject_attributes = dict( state=list, peername=tuple, |