I’m using python addons and I’m trying to change the upstream proxy server if a time out or a specific error occur in the response.
I’ve seen both work independently but when my flow is duplicated and sent through the ‘replay.client’ command, flow.live is not a “HttpLayer” object anymore and become just True giving me of course the following error: “AttributeError: ‘bool’ object has no attribute ‘change_upstream_proxy_server’”
Here is my code:
def request(self, flow: mitmproxy.http.HTTPFlow): if flow.request.is_replay and flow.live: address = ('some_host', 8080) flow.live.change_upstream_proxy_server(address) def responseheaders(self, flow: mitmproxy.http.HTTPFlow): if flow.response.status_code == 403: flow = flow.copy() ctx.master.commands.call("replay.client", [flow])
Am I missing something ?