ability to deal with multiple streams in flight.
diff --git a/test/http2_test/test_goaway.py b/test/http2_test/test_goaway.py
index 419bd7b..7dd7cb7 100644
--- a/test/http2_test/test_goaway.py
+++ b/test/http2_test/test_goaway.py
@@ -12,7 +12,6 @@
self._base_server = http2_base_server.H2ProtocolBaseServer()
self._base_server._handlers['RequestReceived'] = self.on_request_received
self._base_server._handlers['DataReceived'] = self.on_data_received
- self._base_server._handlers['WindowUpdated'] = self.on_window_update_default
self._base_server._handlers['SendDone'] = self.on_send_done
self._base_server._handlers['ConnectionLost'] = self.on_connection_lost
self._ready_to_send = False
@@ -27,11 +26,11 @@
if self._iteration == 2:
self._base_server.on_connection_lost(reason)
- def on_send_done(self):
- self._base_server.on_send_done_default()
- if self._base_server._stream_id == 1:
- logging.info('Sending GOAWAY for stream 1')
- self._base_server._conn.close_connection(error_code=0, additional_data=None, last_stream_id=1)
+ def on_send_done(self, stream_id):
+ self._base_server.on_send_done_default(stream_id)
+ logging.info('Sending GOAWAY for stream %d:'%stream_id)
+ self._base_server._conn.close_connection(error_code=0, additional_data=None, last_stream_id=stream_id)
+ self._base_server._stream_status[stream_id] = False
def on_request_received(self, event):
self._ready_to_send = False
@@ -39,13 +38,9 @@
def on_data_received(self, event):
self._base_server.on_data_received_default(event)
- sr = self._base_server.parse_received_data(self._base_server._recv_buffer)
+ sr = self._base_server.parse_received_data(event.stream_id)
if sr:
logging.info('Creating response size = %s'%sr.response_size)
response_data = self._base_server.default_response_data(sr.response_size)
self._ready_to_send = True
- self._base_server.setup_send(response_data)
-
- def on_window_update_default(self, event):
- if self._ready_to_send:
- self._base_server.default_send()
+ self._base_server.setup_send(response_data, event.stream_id)