From 2ad4c5adf38e627fc4534548610235ce1c590c66 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Fri, 4 Feb 2011 10:05:07 +1300 Subject: Get rid of ReplayConnection - we now have only one ClientConnection class. --- libmproxy/proxy.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'libmproxy/proxy.py') diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py index 66be9525..938c4d21 100644 --- a/libmproxy/proxy.py +++ b/libmproxy/proxy.py @@ -106,7 +106,7 @@ class Request(controller.Msg): @classmethod def from_state(klass, state): return klass( - None, + ClientConnection(None), state["host"], state["port"], state["scheme"], @@ -222,10 +222,23 @@ class Response(controller.Msg): class ClientConnection(controller.Msg): - def __init__(self, address, port): - self.address, self.port = address, port + def __init__(self, address): + """ + address is an (address, port) tuple, or None if this connection has + been replayed from within mitmproxy. + """ + self.address = address controller.Msg.__init__(self) + def set_replay(self): + self.address = None + + def is_replay(self): + if self.address: + return False + else: + return True + def copy(self): return copy.copy(self) @@ -350,10 +363,10 @@ class ProxyHandler(SocketServer.StreamRequestHandler): def handle(self): server = None - bc = ClientConnection(*self.client_address) - bc.send(self.mqueue) + cc = ClientConnection(self.client_address) + cc.send(self.mqueue) try: - request = self.read_request(bc) + request = self.read_request(cc) request = request.send(self.mqueue) if request is None: self.finish() @@ -369,7 +382,7 @@ class ProxyHandler(SocketServer.StreamRequestHandler): except IOError: pass except ProxyError, e: - err = Error(bc, e.msg) + err = Error(cc, e.msg) err.send(self.mqueue) self.send_error(e.code, e.msg) if server: -- cgit v1.2.3