Skip to content

Commit 0dd0bf2

Browse files
authored
Merge pull request #1282 from Yaakov-Belch/bugfix-1241-call-acknowledge-received-data
Fix bug 1241 by calling acknowledge_received_data
2 parents bc005af + 94b3043 commit 0dd0bf2

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

examples/asyncio/asyncio-server.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ def data_received(self, data: bytes):
6060
if isinstance(event, RequestReceived):
6161
self.request_received(event.headers, event.stream_id)
6262
elif isinstance(event, DataReceived):
63-
self.receive_data(event.data, event.stream_id)
63+
self.receive_data(
64+
event.data, event.flow_controlled_length, event.stream_id
65+
)
6466
elif isinstance(event, StreamEnded):
6567
self.stream_complete(event.stream_id)
6668
elif isinstance(event, ConnectionTerminated):
@@ -109,10 +111,12 @@ def stream_complete(self, stream_id: int):
109111
self.conn.send_headers(stream_id, response_headers)
110112
asyncio.ensure_future(self.send_data(data, stream_id))
111113

112-
def receive_data(self, data: bytes, stream_id: int):
114+
def receive_data(self, data: bytes, flow_controlled_length: int, stream_id: int):
113115
"""
114116
We've received some data on a stream. If that stream is one we're
115-
expecting data on, save it off. Otherwise, reset the stream.
117+
expecting data on, save it off (and account for the received amount of
118+
data in flow control so that the client can send more data).
119+
Otherwise, reset the stream.
116120
"""
117121
try:
118122
stream_data = self.stream_data[stream_id]
@@ -122,6 +126,7 @@ def receive_data(self, data: bytes, stream_id: int):
122126
)
123127
else:
124128
stream_data.data.write(data)
129+
self.conn.acknowledge_received_data(flow_controlled_length, stream_id)
125130

126131
def stream_reset(self, stream_id):
127132
"""

0 commit comments

Comments
 (0)