aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorThomas Kriechbaumer <thomas@kriechbaumer.name>2015-08-19 21:09:48 +0200
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2015-08-19 21:09:48 +0200
commit4339b8e7fa1140b9138a023e7e61d78cefe6bb02 (patch)
treea6c6b4cfe1f6ef8c7417140397beb96bc8588f7a /libmproxy
parent721bd1c136893da86c09b9a2024f9a2398769fe7 (diff)
downloadmitmproxy-4339b8e7fa1140b9138a023e7e61d78cefe6bb02.tar.gz
mitmproxy-4339b8e7fa1140b9138a023e7e61d78cefe6bb02.tar.bz2
mitmproxy-4339b8e7fa1140b9138a023e7e61d78cefe6bb02.zip
http2: use callback for handle unexpected frames
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/protocol2/http.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/libmproxy/protocol2/http.py b/libmproxy/protocol2/http.py
index 5170660f..e227f0ba 100644
--- a/libmproxy/protocol2/http.py
+++ b/libmproxy/protocol2/http.py
@@ -68,8 +68,8 @@ class Http2Layer(Layer):
def __init__(self, ctx, mode):
super(Http2Layer, self).__init__(ctx)
self.mode = mode
- self.client_protocol = HTTP2Protocol(self.client_conn, is_server=True)
- self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False)
+ self.client_protocol = HTTP2Protocol(self.client_conn, is_server=True, unhandled_frame_cb=self.handle_unexpected_frame)
+ self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False, unhandled_frame_cb=self.handle_unexpected_frame)
def read_from_client(self):
return HTTPRequest.from_protocol(
@@ -95,17 +95,17 @@ class Http2Layer(Layer):
def connect(self):
self.ctx.connect()
- self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False)
+ self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False, unhandled_frame_cb=self.handle_unexpected_frame)
self.server_protocol.perform_connection_preface()
def reconnect(self):
self.ctx.reconnect()
- self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False)
+ self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False, unhandled_frame_cb=self.handle_unexpected_frame)
self.server_protocol.perform_connection_preface()
def set_server(self, *args, **kwargs):
self.ctx.set_server(*args, **kwargs)
- self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False)
+ self.server_protocol = HTTP2Protocol(self.server_conn, is_server=False, unhandled_frame_cb=self.handle_unexpected_frame)
self.server_protocol.perform_connection_preface()
def __call__(self):
@@ -113,6 +113,9 @@ class Http2Layer(Layer):
layer = HttpLayer(self, self.mode)
layer()
+ def handle_unexpected_frame(self, frm):
+ print(frm.human_readable())
+
def make_error_response(status_code, message, headers=None):
response = status_codes.RESPONSES.get(status_code, "Unknown")