]> git.meshlink.io Git - meshlink/commitdiff
Don't allow meshlink_join() when the storage policy is DISABLED.
authorGuus Sliepen <guus@meshlink.io>
Thu, 4 Feb 2021 21:46:58 +0000 (22:46 +0100)
committerGuus Sliepen <guus@meshlink.io>
Fri, 5 Feb 2021 08:38:05 +0000 (09:38 +0100)
It does not make sense to allow this, since we need to write host config
files during a join, otherwise MeshLink's directory would be left in an
invalid state.

src/meshlink.c
src/meshlink.h

index b812d27329b2c8f0a7de0766086290fa734ccff1..91fefa0c09ff285266452c423e8349d538c24616 100644 (file)
@@ -3022,6 +3022,11 @@ bool meshlink_join(meshlink_handle_t *mesh, const char *invitation) {
                return false;
        }
 
+       if(mesh->storage_policy == MESHLINK_STORAGE_DISABLED) {
+               meshlink_errno = MESHLINK_EINVAL;
+               return false;
+       }
+
        join_state_t state = {
                .mesh = mesh,
                .sock = -1,
index 0cbe84e45c26dd6ae9b44fc6843de819230ea8b6..fdab9b3836c16168aa8ebb6ba642463824aee46d 100644 (file)
@@ -1106,6 +1106,7 @@ char *meshlink_invite(struct meshlink_handle *mesh, struct meshlink_submesh *sub
  *  After a successfully accepted invitation, the name of the local node may have changed.
  *
  *  This function may only be called on a mesh that has not been started yet and which is not already part of an existing mesh.
+ *  It is not valid to call this function when the storage policy set to MESHLINK_STORAGE_DISABLED.
  *
  *  This function is blocking. It can take several seconds before it returns.
  *  There is no guarantee it will perform a successful join.