def main():
app = wx.App(False)
if len(sys.argv) >= 2 and sys.argv[1] == '-test':
config = wx.Config("padherder_proxy_test")
print "In test mode"
else:
config = wx.Config("padherder_proxy")
wx.ConfigBase.Set(config)
frame = MainWindow(None, "Padherder Proxy v%s" % PH_PROXY_VERSION)
host = config.Read("host") or socket.gethostbyname(socket.gethostname())
logger = dnsproxy.MyDNSLogger(frame.dns_tab)
thread.start_new_thread(dnsproxy.serveDNS, (logger, frame.main_tab, frame))
try:
app_config = proxy.ProxyConfig(port=8080, host=host)
app_server = ProxyServer(app_config)
app_master = dump.DumpMaster(app_server, dump.Options(app_host='mitm.it', app_port=80, app=True))
frame.app_master = app_master
thread.start_new_thread(app_master.run, ())
except:
evt = custom_events.wxStatusEvent(message='Error initalizing mitm proxy:\n' + traceback.format_exc() + '\n\nYou probably put in an incorrect IP address in Settings')
wx.PostEvent(frame.main_tab, evt)
app.MainLoop()
python类PostEvent()的实例源码
def serveDNS(logger, status_ctrl, main_frame):
resolver = InterceptResolver('8.8.8.8',
53,
'60s',
status_ctrl,
main_frame)
DNSHandler.log = {
'log_request', # DNS Request
'log_reply', # DNS Response
'log_truncated', # Truncated
'log_error', # Decoding error
}
config = wx.ConfigBase.Get()
host = config.Read("host") or socket.gethostbyname(socket.gethostname())
dnsport = config.Read("dnsport") or "53"
try:
udp_server = DNSServer(resolver,
port=int(dnsport),
address=host,
logger=logger)
except Exception as e:
evt = custom_events.wxStatusEvent(message='Error starting DNS proxy: %s' % e)
wx.PostEvent(status_ctrl,evt)
return
udp_server.start_thread()
evt = custom_events.wxStatusEvent(message="proxy started")
wx.PostEvent(status_ctrl,evt)
try:
while udp_server.isAlive():
time.sleep(1)
except KeyboardInterrupt:
sys.exit()