summaryrefslogtreecommitdiff
path: root/mesh
diff options
context:
space:
mode:
authorIsak Westin <isak.westin@loytec.com>2022-09-29 13:03:44 +0200
committerBrian Gix <brian.gix@intel.com>2022-10-03 14:19:19 -0700
commit291cff0680095a2bd4dd35ec0ccb5c42cf9c347c (patch)
treecf1b4c2c35c717ca5e4e94e0da185045684069d3 /mesh
parent9d22d54244307c31b300fd5c321e6c2dea0cc48d (diff)
downloadbluez-291cff0680095a2bd4dd35ec0ccb5c42cf9c347c.tar.gz
mesh: Allow Key Refresh Phase 0 to 3 transition
Transition to Phase 3 from Phase 0 does not cause any state change, but is a valid transition. See MshPRFv1.0.1 section 4.2.14.
Diffstat (limited to 'mesh')
-rw-r--r--mesh/cfgmod-server.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mesh/cfgmod-server.c b/mesh/cfgmod-server.c
index 7044b670d..be90ef8c5 100644
--- a/mesh/cfgmod-server.c
+++ b/mesh/cfgmod-server.c
@@ -436,6 +436,10 @@ static uint16_t cfg_key_refresh_phase(struct mesh_node *node,
return 0;
}
+ if (pkt[2] == KEY_REFRESH_TRANS_THREE &&
+ phase == KEY_REFRESH_PHASE_NONE)
+ goto done;
+
status = mesh_net_key_refresh_phase_set(net, idx, pkt[2]);
l_debug("Set KR Phase: net=%3.3x transition=%d", idx, pkt[2]);