Update BdxOtaSender to only cease polling upon successful transfer of the bulk data (#23642)
diff --git a/examples/ota-provider-app/esp32/main/BdxOtaSender.cpp b/examples/ota-provider-app/esp32/main/BdxOtaSender.cpp
index 9cb2b5c..37be976 100644
--- a/examples/ota-provider-app/esp32/main/BdxOtaSender.cpp
+++ b/examples/ota-provider-app/esp32/main/BdxOtaSender.cpp
@@ -174,6 +174,7 @@
{
ChipLogError(BDX, "onTransferComplete Callback not set");
}
+ mStopPolling = true; // Stop polling the TransferSession only after receiving BlockAckEOF
Reset();
break;
case TransferSession::OutputEventType::kStatusReceived:
diff --git a/examples/ota-provider-app/ota-provider-common/BdxOtaSender.cpp b/examples/ota-provider-app/ota-provider-common/BdxOtaSender.cpp
index 2aa29dd..5c3f221 100644
--- a/examples/ota-provider-app/ota-provider-common/BdxOtaSender.cpp
+++ b/examples/ota-provider-app/ota-provider-common/BdxOtaSender.cpp
@@ -180,6 +180,7 @@
break;
case TransferSession::OutputEventType::kAckEOFReceived:
ChipLogDetail(BDX, "Transfer completed, got AckEOF");
+ mStopPolling = true; // Stop polling the TransferSession only after receiving BlockAckEOF
Reset();
break;
case TransferSession::OutputEventType::kStatusReceived:
diff --git a/scripts/tests/ota_test.sh b/scripts/tests/ota_test.sh
index fc9a326..8667f82 100755
--- a/scripts/tests/ota_test.sh
+++ b/scripts/tests/ota_test.sh
@@ -26,7 +26,7 @@
echo "Test" >"$FIRMWARE_BIN"
-rm /tmp/chip_*
+rm -f /tmp/chip_*
./src/app/ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn 10 -vs "10.0" -da sha256 "$FIRMWARE_BIN" "$FIRMWARE_OTA"
@@ -75,7 +75,7 @@
RETURN_VALUE=1
fi
-killall -e "$OTA_PROVIDER_APP" "$OTA_REQUESTOR_APP"
+killall -s SIGKILL -e "$OTA_PROVIDER_APP" "$OTA_REQUESTOR_APP"
rm -f "$FIRMWARE_OTA" "$FIRMWARE_BIN" "$OTA_DOWNLOAD_PATH"
echo "$TEST_RESULT"
diff --git a/src/protocols/bdx/TransferFacilitator.cpp b/src/protocols/bdx/TransferFacilitator.cpp
index 767d163..65ab653 100644
--- a/src/protocols/bdx/TransferFacilitator.cpp
+++ b/src/protocols/bdx/TransferFacilitator.cpp
@@ -112,7 +112,6 @@
void Responder::ResetTransfer()
{
mTransfer.Reset();
- mStopPolling = true;
}
CHIP_ERROR Initiator::InitiateTransfer(System::Layer * layer, TransferRole role, const TransferSession::TransferInitData & initData,