Remove temporary files at startup. master
authorGuus Sliepen <guus@meshlink.io>
Tue, 4 Aug 2020 13:24:07 +0000 (15:24 +0200)
committerGuus Sliepen <guus@meshlink.io>
Tue, 4 Aug 2020 13:24:07 +0000 (15:24 +0200)
When something happens while a host config files is written, a temporary
file might be left over. Clean these up when we find them when starting
MeshLink.

src/net_setup.c

index b289a76..269b46e 100644 (file)
@@ -278,6 +278,15 @@ static bool load_node(meshlink_handle_t *mesh, const char *name, void *priv) {
        (void)priv;
 
        if(!check_id(name)) {
+               // Check if this is a temporary file, if so remove it
+               const char *suffix = strstr(name, ".tmp");
+
+               if(suffix && !suffix[4]) {
+                       char filename[PATH_MAX];
+                       snprintf(filename, sizeof(filename), "%s" SLASH "current" SLASH "hosts", mesh->confbase);
+                       unlink(filename);
+               }
+
                return true;
        }