aboutsummaryrefslogtreecommitdiff
path: root/pw_transfer
diff options
context:
space:
mode:
Diffstat (limited to 'pw_transfer')
-rw-r--r--pw_transfer/integration_test/cross_language_medium_read_test.py9
-rw-r--r--pw_transfer/py/pw_transfer/transfer.py9
2 files changed, 7 insertions, 11 deletions
diff --git a/pw_transfer/integration_test/cross_language_medium_read_test.py b/pw_transfer/integration_test/cross_language_medium_read_test.py
index 5d74d49e2..8899d8f78 100644
--- a/pw_transfer/integration_test/cross_language_medium_read_test.py
+++ b/pw_transfer/integration_test/cross_language_medium_read_test.py
@@ -118,15 +118,6 @@ class MediumTransferReadIntegrationTest(test_fixture.TransferIntegrationTest):
@parameterized.expand(_ALL_LANGUAGES_AND_VERSIONS)
def test_parameter_drop_client_read(self, client_type, protocol_version):
"""Drops the first few transfer initialization packets."""
- # TODO(b/257308150): Python v2 breaks and the transfer fails on this
- # test.
- if (
- client_type == "python"
- and protocol_version == config_pb2.TransferAction.ProtocolVersion.V2
- ):
- self.skipTest(
- "This test fails when using v2 protocol with a Python client"
- )
payload = random.Random(67336391945).randbytes(1234)
config = TransferConfig(
self.default_server_config(),
diff --git a/pw_transfer/py/pw_transfer/transfer.py b/pw_transfer/py/pw_transfer/transfer.py
index b6479081c..11dc55636 100644
--- a/pw_transfer/py/pw_transfer/transfer.py
+++ b/pw_transfer/py/pw_transfer/transfer.py
@@ -353,10 +353,15 @@ class Transfer(abc.ABC):
self._max_retries,
)
- if self._state in (
+ retry_handshake_chunk = self._state in (
Transfer._State.INITIATING,
Transfer._State.TERMINATING,
- ):
+ ) or (
+ self._last_chunk is not None
+ and self._last_chunk.type is Chunk.Type.START_ACK_CONFIRMATION
+ )
+
+ if retry_handshake_chunk:
assert self._last_chunk is not None
self._send_chunk(self._last_chunk)
else: