diff --git a/src/FSCommon.cpp b/src/FSCommon.cpp index 5293c4015..b0ba44f28 100644 --- a/src/FSCommon.cpp +++ b/src/FSCommon.cpp @@ -2,8 +2,8 @@ #include "FSCommon.h" void listDir(const char * dirname, uint8_t levels) -#ifdef FSCom { +#ifdef FSCom File root = FSCom.open(dirname); if(!root){ return; @@ -29,29 +29,41 @@ void listDir(const char * dirname, uint8_t levels) } void rmDir(const char * dirname) -#ifdef FSCom { - File root = FSCom.open(dirname); - if(!root){ +#ifdef FSCom + File file = FSCom.open(dirname); + if(!file){ return; } - if(!root.isDirectory()){ + if(!file.isDirectory()){ + file.close(); + FSCom.remove(file.name()); + // DEBUG_MSG("Remove FILE %s\n", file.name()); return; } - File file = root.openNextFile(); - while(file){ - if(file.isDirectory() && !String(file.name()).endsWith(".")) { - file.close(); - rmDir(file.name()); - FSCom.rmdir(file.name()); - } else { - file.close(); - FSCom.remove(file.name()); + file.rewindDirectory(); + while (true) { + File entry = file.openNextFile(); + if (!entry) { + break; + } + char dirpath[100]; // array to hold the result. + strcpy(dirpath, dirname); // copy string one into the result. + strcat(dirpath,"/"); // append string two to the result. + strcat(dirpath,entry.name()); // append string two to the result. + if(entry.isDirectory() && !String(entry.name()).endsWith(".")) { + entry.close(); + // DEBUG_MSG("Descend DIR %s\n", dirpath); + rmDir(dirpath); + } else { + entry.close(); + // DEBUG_MSG("Remove FILE %s\n", entry.name()); + FSCom.remove(entry.name()); } - file.close(); - file = root.openNextFile(); } + FSCom.rmdir(dirname); + // DEBUG_MSG("Remove DIR %s\n", dirname); file.close(); #endif } diff --git a/src/main.cpp b/src/main.cpp index 5efbb841c..ffa2c6470 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -105,7 +105,7 @@ const char *getDeviceName() static char name[20]; sprintf(name, "%02x%02x", dmac[4], dmac[5]); // if the shortname exists and is NOT the new default of ab3c, use it for BLE name. - if ((owner.short_name != NULL) && (owner.short_name != name)) { + if ((owner.short_name != NULL) && (strcmp(owner.short_name, name) != 0)) { sprintf(name, "%s_%02x%02x", owner.short_name, dmac[4], dmac[5]); } else { sprintf(name, "Meshtastic_%02x%02x", dmac[4], dmac[5]); diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index 4d9e27cf4..a6e617344 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -337,16 +337,16 @@ void NodeDB::loadFromDisk() DEBUG_MSG("Warn: devicestate %d is old, discarding\n", devicestate.version); installDefaultDeviceState(); #ifndef NO_ESP32 - // This will erase what's in NVS including ssl keys, persistant variables and ble pairing - nvs_flash_erase(); + // This will erase what's in NVS including ssl keys, persistant variables and ble pairing + nvs_flash_erase(); #endif #ifdef NRF52_SERIES - Bluefruit.begin(); - DEBUG_MSG("Clearing bluetooth bonds!\n"); - bond_print_list(BLE_GAP_ROLE_PERIPH); - bond_print_list(BLE_GAP_ROLE_CENTRAL); - Bluefruit.Periph.clearBonds(); - Bluefruit.Central.clearBonds(); + Bluefruit.begin(); + DEBUG_MSG("Clearing bluetooth bonds!\n"); + bond_print_list(BLE_GAP_ROLE_PERIPH); + bond_print_list(BLE_GAP_ROLE_CENTRAL); + Bluefruit.Periph.clearBonds(); + Bluefruit.Central.clearBonds(); #endif } else { DEBUG_MSG("Loaded saved devicestate version %d\n", devicestate.version);