From 13b28b6ebb4077d361ce8499fd99609fb4745e7d Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 24 Apr 2019 17:12:05 +0100 Subject: [PATCH] Tighten up how we hand out stream ids --- httpcore/http2.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/httpcore/http2.py b/httpcore/http2.py index 0b32bc15..08904388 100644 --- a/httpcore/http2.py +++ b/httpcore/http2.py @@ -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)