aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/script
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-08-09 20:26:24 -0700
committerMaximilian Hils <git@maximilianhils.com>2016-08-09 20:26:24 -0700
commit818840f553666c9993c7fa6fec3871d80764a282 (patch)
tree6e74b7713b044b3e0c18111ae0e5463a70ebe937 /mitmproxy/script
parentf719644aa1a9bed22099c70696617d66123e72df (diff)
downloadmitmproxy-818840f553666c9993c7fa6fec3871d80764a282.tar.gz
mitmproxy-818840f553666c9993c7fa6fec3871d80764a282.tar.bz2
mitmproxy-818840f553666c9993c7fa6fec3871d80764a282.zip
finalize Reply semantics, fix tests
Diffstat (limited to 'mitmproxy/script')
-rw-r--r--mitmproxy/script/concurrent.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/mitmproxy/script/concurrent.py b/mitmproxy/script/concurrent.py
index 0cc0514e..9ed08065 100644
--- a/mitmproxy/script/concurrent.py
+++ b/mitmproxy/script/concurrent.py
@@ -13,7 +13,7 @@ class ScriptThread(basethread.BaseThread):
def concurrent(fn):
- if fn.__name__ not in controller.Events - set(["start", "configure", "tick"]):
+ if fn.__name__ not in controller.Events - {"start", "configure", "tick"}:
raise NotImplementedError(
"Concurrent decorator not supported for '%s' method." % fn.__name__
)
@@ -21,8 +21,10 @@ def concurrent(fn):
def _concurrent(obj):
def run():
fn(obj)
- if not obj.reply.acked:
- obj.reply.ack()
+ if obj.reply.state == "taken":
+ if not obj.reply.has_message:
+ obj.reply.ack()
+ obj.reply.commit()
obj.reply.take()
ScriptThread(
"script.concurrent (%s)" % fn.__name__,