diff --git a/bubble-server/src/main/resources/packer/roles/mitmproxy/files/bubble_modify.py b/bubble-server/src/main/resources/packer/roles/mitmproxy/files/bubble_modify.py index b6375c99..9d15c945 100644 --- a/bubble-server/src/main/resources/packer/roles/mitmproxy/files/bubble_modify.py +++ b/bubble-server/src/main/resources/packer/roles/mitmproxy/files/bubble_modify.py @@ -22,7 +22,7 @@ STANDARD_FILTER_HEADERS = {HEADER_CONTENT_TYPE: CONTENT_TYPE_BINARY} REDIS_FILTER_PASSTHRU_PREFIX = '__chunk_filter_pass__' REDIS_FILTER_PASSTHRU_DURATION = 600 -def filter_chunk(flow, chunk, req_id, last, content_encoding=None, content_type=None, user_agent=None, content_length=None, csp=None): +def filter_chunk(flow, chunk, req_id, user_agent, last, content_encoding=None, content_type=None, content_length=None, csp=None): if debug_capture_fqdn: host = None if flow.client_conn.tls_established: @@ -49,7 +49,7 @@ def filter_chunk(flow, chunk, req_id, last, content_encoding=None, content_type= redis_passthru_key = REDIS_FILTER_PASSTHRU_PREFIX + flow.request.method + '~~~' + user_agent + ':' + flow.request.url do_pass = REDIS.get(redis_passthru_key) if do_pass: - # bubble_log('filter_chunk: req_id='+req_id+': passthru found in redis, returning chunk') + bubble_log('filter_chunk: req_id='+req_id+': passthru found in redis, returning chunk') REDIS.touch(redis_passthru_key) return chunk @@ -94,7 +94,7 @@ def filter_chunk(flow, chunk, req_id, last, content_encoding=None, content_type= return response.content -def bubble_filter_chunks(flow, chunks, req_id, content_encoding, content_type, user_agent, csp): +def bubble_filter_chunks(flow, chunks, req_id, user_agent, content_encoding, content_type, csp): """ chunks is a generator that can be used to iterate over all chunks. """ @@ -111,20 +111,20 @@ def bubble_filter_chunks(flow, chunks, req_id, content_encoding, content_type, u else: last = False if first: - yield filter_chunk(flow, chunk, req_id, last, content_encoding, content_type, user_agent, content_length, csp) + yield filter_chunk(flow, chunk, req_id, user_agent, last, content_encoding, content_type, content_length, csp) first = False else: - yield filter_chunk(flow, chunk, req_id, last) + yield filter_chunk(flow, chunk, req_id, user_agent, last) if not content_length: - yield filter_chunk(flow, None, req_id, True) # get the last bits of data + yield filter_chunk(flow, None, req_id, user_agent, True) # get the last bits of data except Exception as e: bubble_log('bubble_filter_chunks: exception='+repr(e)) traceback.print_exc() yield None -def bubble_modify(flow, req_id, content_encoding, content_type, user_agent, csp): - return lambda chunks: bubble_filter_chunks(flow, chunks, req_id, content_encoding, content_type, user_agent, csp) +def bubble_modify(flow, req_id, user_agent, content_encoding, content_type, csp): + return lambda chunks: bubble_filter_chunks(flow, chunks, req_id, user_agent, content_encoding, content_type, csp) def send_bubble_response(response): @@ -205,7 +205,7 @@ def responseheaders(flow): content_length_value = flow.response.headers.pop(HEADER_CONTENT_LENGTH, None) bubble_log(prefix+'content_encoding='+repr(content_encoding) + ', content_type='+repr(content_type)) - flow.response.stream = bubble_modify(flow, req_id, content_encoding, content_type, user_agent, csp) + flow.response.stream = bubble_modify(flow, req_id, user_agent, content_encoding, content_type, csp) if content_length_value: flow.response.headers['transfer-encoding'] = 'chunked' # find server_conn to set fake_chunks on