]> 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>
Wed, 3 Mar 2021 11:39:50 +0000 (12:39 +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 da7305515bec02fb4687b91afa0d08b02819dd96..8b9e195fa7df2b9a96d4c949d721867d10271783 100644 (file)
@@ -3025,6 +3025,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 3be94710309da0a13c36b231578456156279b8fc..7960d31051426dc927bc53aaf308a1b272916895 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.