summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2020-02-05 14:53:43 -0800
committerBrian Gix <brian.gix@intel.com>2020-02-07 09:19:14 -0800
commitfb811a090bb3d86b21654ebb0051fb0ec0b7bb97 (patch)
tree18f3f0215a02aedb58d162497b4a2ae908972eee
parent382f004f31256f0789d7508f2dfe647f5cb3288d (diff)
downloadbluez-fb811a090bb3d86b21654ebb0051fb0ec0b7bb97.tar.gz
mesh: Allow to finish key refresh when no AppKeys are stored
This handles a case when a Key Refresh procedure is in place with no application keys stored in the keyring. When KR procedure is finalized, the check for the presence of AppKeys storage directory does not return failure if the directory does not exist. Also, remove duplicate include.
-rw-r--r--mesh/keyring.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/mesh/keyring.c b/mesh/keyring.c
index 41cb2e980..4a6f9f27d 100644
--- a/mesh/keyring.c
+++ b/mesh/keyring.c
@@ -24,10 +24,10 @@
#define _GNU_SOURCE
#include <fcntl.h>
#include <dirent.h>
+#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <unistd.h>
-#include <dirent.h>
#include <sys/stat.h>
@@ -166,7 +166,10 @@ bool keyring_finalize_app_keys(struct mesh_node *node, uint16_t net_idx)
snprintf(key_dir, PATH_MAX, "%s%s", node_path, app_key_dir);
dir = opendir(key_dir);
if (!dir) {
- l_error("Failed to App Key storage directory: %s", key_dir);
+ if (errno == ENOENT)
+ return true;
+
+ l_error("Failed to open AppKey storage directory: %s", key_dir);
return false;
}