diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2010-02-16 17:09:07 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2010-02-16 17:09:07 +1300 |
commit | cb0e3287090786fad566feb67ac07b8ef361b2c3 (patch) | |
tree | 0cce85760f1811bc3bbd00245764142621fa9d16 /examples/stickycookies.py | |
download | mitmproxy-cb0e3287090786fad566feb67ac07b8ef361b2c3.tar.gz mitmproxy-cb0e3287090786fad566feb67ac07b8ef361b2c3.tar.bz2 mitmproxy-cb0e3287090786fad566feb67ac07b8ef361b2c3.zip |
Initial checkin.
Diffstat (limited to 'examples/stickycookies.py')
-rw-r--r-- | examples/stickycookies.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/stickycookies.py b/examples/stickycookies.py new file mode 100644 index 00000000..94b35876 --- /dev/null +++ b/examples/stickycookies.py @@ -0,0 +1,35 @@ +from libmproxy import controller, proxy + +proxy.config = proxy.Config( + "~/.mitmproxy/cert.pem" +) + +class StickyMaster(controller.Master): + def __init__(self, server): + controller.Master.__init__(self, server) + self.stickyhosts = {} + + def run(self): + try: + return controller.Master.run(self) + except KeyboardInterrupt: + self.shutdown() + + def handle_request(self, msg): + hid = (msg.host, msg.port) + if msg.headers.has_key("cookie"): + self.stickyhosts[hid] = msg.headers["cookie"] + elif hid in self.stickyhosts: + msg.headers["cookie"] = self.stickyhosts[hid] + msg.ack() + + def handle_response(self, msg): + hid = (msg.request.host, msg.request.port) + if msg.headers.has_key("set-cookie"): + self.stickyhosts[hid] = f.response.headers["set-cookie"] + msg.ack() + + +server = proxy.ProxyServer(8080) +m = StickyMaster(server) +m.run() |