del self.state.local_settings[h2.settings.SettingCodes.ENABLE_CONNECT_PROTOCOL]
self.state.initiate_connection()
+ self.state.increment_flow_control_window(2 ** 24)
data_to_send = self.state.data_to_send()
await self.socket.write(data_to_send, timeout)
timeout: Timeout,
) -> None:
self.state.send_headers(stream_id, headers)
+ self.state.increment_flow_control_window(2 ** 24, stream_id=stream_id)
data_to_send = self.state.data_to_send()
await self.socket.write(data_to_send, timeout)
self.requests = {}
self.close_connection = False
self.return_data = {}
- self.returning = {}
self.settings_changed = []
# Socket stream interface
self.buffer += self.conn.data_to_send()
elif isinstance(event, h2.events.StreamEnded):
self.stream_complete(event.stream_id)
- elif isinstance(event, h2.events.WindowUpdated):
- if event.stream_id == 0:
- for key, value in self.returning.items():
- if value:
- self.send_return_data(key)
- # This will throw an error if the event is for a not-yet created stream
- elif self.returning[event.stream_id]:
- self.send_return_data(event.stream_id)
elif isinstance(event, h2.events.RemoteSettingsChanged):
self.settings_changed.append(event)
self.conn.send_headers(stream_id, response_headers)
self.buffer += self.conn.data_to_send()
self.return_data[stream_id] = response.content
- self.returning[stream_id] = True
self.send_return_data(stream_id)
def send_return_data(self, stream_id):
)
self.conn.send_data(stream_id, chunk)
self.buffer += self.conn.data_to_send()
- self.returning[stream_id] = False
self.conn.end_stream(stream_id)
self.buffer += self.conn.data_to_send()