summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Carré2013-02-22 10:33:40 +0100
committerThierry Carré2013-02-27 13:57:57 +0100
commit92f954b32c1350aebae7aa36ff876e664a0cc05a (patch)
treedc83167c78116cf3cc968ea2eaa3df2808857378
parent442010a80524e6d143437a72caef0aee8e080dd5 (diff)
cesar/cp/av/sta/mgr: factorize NMK key comparison for next commit, refs #542
-rw-r--r--cesar/cp/av/sta/mgr/src/sta_own_data.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/cesar/cp/av/sta/mgr/src/sta_own_data.c b/cesar/cp/av/sta/mgr/src/sta_own_data.c
index a563c409ec..91d7795a1e 100644
--- a/cesar/cp/av/sta/mgr/src/sta_own_data.c
+++ b/cesar/cp/av/sta/mgr/src/sta_own_data.c
@@ -28,6 +28,23 @@
#include "cp/inc/context.h"
#include "cp/sta/mgr/inc/sta_own_data.h"
+
+static bool
+cp_av_sta_own_data_is_nmk_different (
+ cp_t *ctx, const cp_key_t nmk)
+{
+ dbg_assert (ctx);
+
+ uint i;
+ cp_key_t current_key = cp_sta_own_data_get_nmk (ctx);
+
+ for (i = 0; i < COUNT(nmk.key) ;i++)
+ if (nmk.key[i] != current_key.key[i])
+ return true;
+
+ return false;
+}
+
/**
* Initialise the station own data to default values.
* \param ctx the module context.
@@ -53,14 +70,7 @@ cp_av_sta_own_data_set_nmk (cp_t *ctx, const cp_key_t nmk,
dbg_assert (ctx);
dbg_assert (type < CP_MSG_DRV_STA_SET_KEY_TYPE_NB);
- uint i;
- cp_key_t current_key = cp_sta_own_data_get_nmk (ctx);
-
- for (i = 0; i < COUNT(nmk.key) ;i++)
- if (nmk.key[i] != current_key.key[i])
- break;
-
- if (i < COUNT(nmk.key))
+ if (cp_av_sta_own_data_is_nmk_different (ctx, nmk))
{
ctx->sta_mgr.sta_own_data.nmk = nmk;