mitmproxy/examples/flowbasic

40 lines
945 B
Plaintext
Raw Normal View History

2011-08-13 01:51:38 +00:00
#!/usr/bin/env python
"""
This example shows how to build a proxy based on mitmproxy's Flow
primitives.
Note that request and response messages are not automatically replied to,
so we need to implement handlers to do this.
2011-08-13 01:51:38 +00:00
"""
import os
from libmproxy import proxy, flow
class MyMaster(flow.FlowMaster):
def run(self):
try:
flow.FlowMaster.run(self)
except KeyboardInterrupt:
self.shutdown()
def handle_request(self, f):
f = flow.FlowMaster.handle_request(self, f)
2011-08-13 01:51:38 +00:00
if f:
f.reply()
2011-08-13 01:51:38 +00:00
return f
def handle_response(self, f):
f = flow.FlowMaster.handle_response(self, f)
2011-08-13 01:51:38 +00:00
if f:
f.reply()
2011-08-13 01:51:38 +00:00
print f
return f
2012-02-20 23:32:56 +00:00
config = proxy.ProxyConfig(
2011-08-13 01:51:38 +00:00
cacert = os.path.expanduser("~/.mitmproxy/mitmproxy-ca.pem")
)
state = flow.State()
2012-02-20 23:32:56 +00:00
server = proxy.ProxyServer(config, 8080)
2011-08-13 01:51:38 +00:00
m = MyMaster(server, state)
m.run()