diff mbox series

[BlueZ] mesh: Allow to finish key refresh when no AppKeys are stored

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

Commit Message

Stotland, Inga Feb. 5, 2020, 10:53 p.m. UTC
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(-)

Comments

Brian Gix Feb. 7, 2020, 5:22 p.m. UTC | #1
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 mbox series

Patch

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;
 	}