Message ID | 20200205225343.6271-1-inga.stotland@intel.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Brian Gix |
Headers | show |
Series | [BlueZ] mesh: Allow to finish key refresh when no AppKeys are stored | expand |
Applied On Wed, 2020-02-05 at 14:53 -0800, Inga Stotland wrote: > 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. > --- > mesh/keyring.c | 7 +++++-- > 1 file 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; > } >
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; }