Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pymodbus/transport/transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,10 @@ def datagram_received(self, data: bytes, addr: tuple | None) -> None:
if not data:
return
Log.transport_dump(Log.RECV_DATA, data, self.recv_buffer)
self.recv_buffer += data
if len(self.recv_buffer) > 1024:
self.recv_buffer = b""
self.recv_buffer += data
return
cut = self.callback_data(self.recv_buffer, addr=addr)
self.recv_buffer = self.recv_buffer[cut:]
if self.recv_buffer:
Expand Down
2 changes: 1 addition & 1 deletion test/transport/test_comm.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ async def test_serial_poll(self, client, server, use_port):
await asyncio.sleep(0.5)
assert len(server.active_connections) == 1
server_connected = list(server.active_connections.values())[0]
test_data = b"abcd" * 1000
test_data = b"abcd" * 10
client.send(test_data)
await asyncio.sleep(0.5)
assert server_connected.recv_buffer == test_data
Expand Down
2 changes: 1 addition & 1 deletion test/transport/test_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ async def test_datagram_buffer_overrun(self, client):
client.callback_data = mock.MagicMock(return_value=0)
client.recv_buffer = bytearray([0x01] * 2000)
client.datagram_received(b"abc", "127.0.0.1")
assert client.recv_buffer == b"abc"
assert client.recv_buffer == b""

async def test_callback_connected(self, use_clc, dummy_protocol):
"""Test callbacks."""
Expand Down