]> git.meshlink.io Git - meshlink/commitdiff
Don't clear node dirty flag in meshlink_stop().
authorGuus Sliepen <guus@meshlink.io>
Wed, 3 Feb 2021 22:30:36 +0000 (23:30 +0100)
committerGuus Sliepen <guus@meshlink.io>
Fri, 5 Feb 2021 08:38:05 +0000 (09:38 +0100)
It's node_write_config() itself that should unset the dirty flag, depending
on the storage policy and if storage succeeded. Otherwise, we risk that
setting the storage policy back to ENABLED after calling meshlink_stop()
will not cause pending updates to be written out by meshlink_close().

src/meshlink.c

index 79f5eeba7dc8994bfa30d4ffe212921d65ee6d6b..b812d27329b2c8f0a7de0766086290fa734ccff1 100644 (file)
@@ -1843,7 +1843,9 @@ void meshlink_stop(meshlink_handle_t *mesh) {
        if(mesh->nodes) {
                for splay_each(node_t, n, mesh->nodes) {
                        if(n->status.dirty) {
-                               n->status.dirty = !node_write_config(mesh, n, false);
+                               if(!node_write_config(mesh, n, false)) {
+                                       // ignore
+                               }
                        }
                }
        }