Properly handle commissioning error paths (#16882)
* Don't re-establish PASE if we have a connection.
* Fix incorrect error return for pase with no pairing delegate
* Add commissioning status update callback
Also callback with full peer id for folks that want that.
* Disarm failsafe immediately if we get 0 timeout.
* Fix event handling in commissioning window manager.
The current failsafe expiry doesn't actually re-start the advertising
because the pase connection stops the commissioning window timer.
Instead, stop the commissining window timer when we get a commissioning
complete.
Don't use the OnSessionEstablishmentError function for failsafe
timer expiry because it sends a callback about pairing that does not
apply here.
* Fail re-send if the session is expired.
* Disarm failsafe and kill pase connection for early failures
* Clear event on BLE commissioning.
* Restyled by clang-format
* Restyled by autopep8
* Add ExpireAllPASEPairings function to session manager
Use in CommissioningWindowManager
* Restyled by clang-format
* Address review comments
* Boris' reliable transmission fix.
* Revert back to using > 0 for breadcrumb.
Most commands don't set it - the last one that did was the failsafe.
* manually cancel timer.
* Apply suggestions from code review
Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
* Add API documentation
* Move log line down.
* Restyled by clang-format
* Boris' fix for darwin tests.
Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
diff --git a/src/controller/python/ChipDeviceController-ScriptBinding.cpp b/src/controller/python/ChipDeviceController-ScriptBinding.cpp
index e795cf5..8a74f1c 100644
--- a/src/controller/python/ChipDeviceController-ScriptBinding.cpp
+++ b/src/controller/python/ChipDeviceController-ScriptBinding.cpp
@@ -162,6 +162,10 @@
ChipError::StorageType pychip_ScriptDevicePairingDelegate_SetCommissioningCompleteCallback(
chip::Controller::DeviceCommissioner * devCtrl, chip::Controller::DevicePairingDelegate_OnCommissioningCompleteFunct callback);
+ChipError::StorageType pychip_ScriptDevicePairingDelegate_SetCommissioningStatusUpdateCallback(
+ chip::Controller::DeviceCommissioner * devCtrl,
+ chip::Controller::DevicePairingDelegate_OnCommissioningStatusUpdateFunct callback);
+
// BLE
ChipError::StorageType pychip_DeviceCommissioner_CloseBleConnection(chip::Controller::DeviceCommissioner * devCtrl);
@@ -523,6 +527,14 @@
return CHIP_NO_ERROR.AsInteger();
}
+ChipError::StorageType pychip_ScriptDevicePairingDelegate_SetCommissioningStatusUpdateCallback(
+ chip::Controller::DeviceCommissioner * devCtrl,
+ chip::Controller::DevicePairingDelegate_OnCommissioningStatusUpdateFunct callback)
+{
+ sPairingDelegate.SetCommissioningStatusUpdateCallback(callback);
+ return CHIP_NO_ERROR.AsInteger();
+}
+
ChipError::StorageType pychip_DeviceController_UpdateDevice(chip::Controller::DeviceCommissioner * devCtrl, chip::NodeId nodeid)
{
return devCtrl->UpdateDevice(nodeid).AsInteger();