asyncio: fix client replay

This commit is contained in:
Aldo Cortesi 2018-03-31 19:50:36 +13:00 committed by Aldo Cortesi
parent 54170ee657
commit b6d943cfa3
2 changed files with 3 additions and 23 deletions

View File

@ -202,13 +202,7 @@ class Master:
host = f.request.headers.pop(":authority")
f.request.headers.insert(0, "host", host)
rt = http_replay.RequestReplayThread(
self.options,
f,
asyncio.get_event_loop(),
self.event_queue,
self.should_exit
)
rt = http_replay.RequestReplayThread(self.options, f, self.server.channel)
rt.start() # pragma: no cover
if block:
rt.join()

View File

@ -1,8 +1,3 @@
import asyncio
import queue
import threading
import typing
from mitmproxy import log
from mitmproxy import controller
from mitmproxy import exceptions
@ -26,21 +21,12 @@ class RequestReplayThread(basethread.BaseThread):
self,
opts: options.Options,
f: http.HTTPFlow,
loop: asyncio.AbstractEventLoop,
event_queue: typing.Optional[queue.Queue],
should_exit: threading.Event
channel: controller.Channel,
) -> None:
"""
event_queue can be a queue or None, if no scripthooks should be
processed.
"""
self.options = opts
self.f = f
f.live = True
if event_queue:
self.channel = controller.Channel(loop, event_queue)
else:
self.channel = None
self.channel = channel
super().__init__(
"RequestReplay (%s)" % f.request.url
)