Tighten up how we hand out stream ids

This commit is contained in:
Tom Christie 2019-04-24 17:12:05 +01:00
parent 0bdcbaef72
commit 13b28b6ebb

View File

@ -45,9 +45,8 @@ class HTTP2Connection(Client):
self.initiate_connection()
#  Start sending the request.
stream_id = self.h2_state.get_next_available_stream_id()
stream_id = await self.send_headers(stream_id, request)
self.events[stream_id] = []
await self.send_headers(stream_id, request)
# Send the request body.
async for data in request.stream():
@ -85,7 +84,8 @@ class HTTP2Connection(Client):
self.writer.write(data_to_send)
self.initialized = True
async def send_headers(self, stream_id: int, request: Request) -> None:
async def send_headers(self, stream_id: int, request: Request) -> int:
stream_id = self.h2_state.get_next_available_stream_id()
headers = [
(b":method", request.method.encode()),
(b":authority", request.url.hostname.encode()),
@ -95,6 +95,7 @@ class HTTP2Connection(Client):
self.h2_state.send_headers(stream_id, headers)
data_to_send = self.h2_state.data_to_send()
self.writer.write(data_to_send)
return stream_id
async def send_data(self, stream_id: int, data: bytes) -> None:
self.h2_state.send_data(stream_id, data)