aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/controller.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/mitmproxy/controller.py b/mitmproxy/controller.py
index 54d75e6b..070ec862 100644
--- a/mitmproxy/controller.py
+++ b/mitmproxy/controller.py
@@ -220,6 +220,12 @@ def handler(f):
if handling and not message.reply.acked and not message.reply.taken:
message.reply.ack()
+
+ # Reset the handled flag - it's common for us to feed the same object
+ # through handlers repeatedly, so we don't want this to persist across
+ # calls.
+ if message.reply.handled:
+ message.reply.handled = False
return ret
# Mark this function as a handler wrapper
wrapper.__dict__["__handler"] = True