]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
Bump up flow control defaults (#629)
authorTom Christie <tom@tomchristie.com>
Thu, 12 Dec 2019 11:57:53 +0000 (11:57 +0000)
committerGitHub <noreply@github.com>
Thu, 12 Dec 2019 11:57:53 +0000 (11:57 +0000)
* Bump up flow control defaults

* Linting

* Simplify mock HTTP/2 stream in tests

httpx/dispatch/http2.py
tests/dispatch/utils.py

index e0ddf2355cb012c38caa2da8ae2c76e382725034..43ea8df7a891c95058edae061c1eb82be2d9b9eb 100644 (file)
@@ -96,6 +96,7 @@ class HTTP2Connection(OpenConnection):
         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)
 
@@ -165,6 +166,7 @@ class HTTP2Connection(OpenConnection):
         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)
 
index 00565289b69f2393737f4755b0e56234416647cf..3d24ac7400672ced0c4d5a0b82fc8d1cd4007a40 100644 (file)
@@ -41,7 +41,6 @@ class MockHTTP2Server(BaseSocketStream):
         self.requests = {}
         self.close_connection = False
         self.return_data = {}
-        self.returning = {}
         self.settings_changed = []
 
     # Socket stream interface
@@ -75,14 +74,6 @@ class MockHTTP2Server(BaseSocketStream):
                     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)
 
@@ -141,7 +132,6 @@ class MockHTTP2Server(BaseSocketStream):
         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):
@@ -161,7 +151,6 @@ class MockHTTP2Server(BaseSocketStream):
                 )
                 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()