From 3f11074f1e188bd84d7d530da271ce5bc66bc3ec Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Sat, 7 Feb 2026 20:37:00 -0800 Subject: [PATCH] [joiner] refresh ID from EUI-64 in `Start()` when discerner is empty (#12393) This commit updates `Joiner::Start()` to explicitly call `SetIdFromIeeeEui64()` when `mDiscerner` is empty. This ensures that the Joiner ID is freshly derived from the current IEEE EUI-64 address, guaranteeing correctness even if the address was not ready during initialization or has changed since the instance was created. --- src/core/meshcop/joiner.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp index c9c6688bf..6d22fad01 100644 --- a/src/core/meshcop/joiner.cpp +++ b/src/core/meshcop/joiner.cpp @@ -128,6 +128,11 @@ Error Joiner::Start(const char *aPskd, SuccessOrExit(error = Get().Open(Ip6::NetifIdentifier::kNetifThreadInternal)); + if (mDiscerner.IsEmpty()) + { + SetIdFromIeeeEui64(); + } + // After this, if any of the steps fails, we need to cleanup // (free allocated message, stop seeker, close agent, etc). shouldCleanup = true;