소스 검색

* RP2040 IdentityStore begin(), to ensure mkdir()

Scott Powell 1 년 전
부모
커밋
a87b5231cc

+ 3 - 0
examples/companion_radio/main.cpp

@@ -817,6 +817,9 @@ public:
 
   #if defined(NRF52_PLATFORM)
     _identity_store = new IdentityStore(fs, "");
+  #elif defined(RP2040_PLATFORM)
+    _identity_store = new IdentityStore(fs, "/identity");
+    _identity_store->begin();
   #else
     _identity_store = new IdentityStore(fs, "/identity");
   #endif

+ 1 - 0
examples/simple_repeater/main.cpp

@@ -651,6 +651,7 @@ void setup() {
   LittleFS.begin();
   fs = &LittleFS;
   IdentityStore store(LittleFS, "/identity");
+  store.begin();
 #else
   #error "need to define filesystem"
 #endif

+ 1 - 0
examples/simple_room_server/main.cpp

@@ -889,6 +889,7 @@ void setup() {
   LittleFS.begin();
   fs = &LittleFS;
   IdentityStore store(LittleFS, "/identity");
+  store.begin();
 #elif defined(ESP32)
   SPIFFS.begin(true);
   fs = &SPIFFS;

+ 3 - 0
examples/simple_secure_chat/main.cpp

@@ -295,6 +295,9 @@ public:
 
   #if defined(NRF52_PLATFORM)
     IdentityStore store(fs, "");
+  #elif defined(RP2040_PLATFORM)
+    IdentityStore store(fs, "/identity");
+    store.begin();
   #else
     IdentityStore store(fs, "/identity");
   #endif

+ 1 - 1
src/helpers/IdentityStore.h

@@ -18,7 +18,7 @@ class IdentityStore {
 public:
   IdentityStore(FILESYSTEM& fs, const char* dir): _fs(&fs), _dir(dir) { }
 
-  void begin() { _fs->mkdir(_dir); }
+  void begin() { if (_dir && _dir[0] == '/') { _fs->mkdir(_dir); } }
   bool load(const char *name, mesh::LocalIdentity& id);
   bool load(const char *name, mesh::LocalIdentity& id, char display_name[], int max_name_sz);
   bool save(const char *name, const mesh::LocalIdentity& id);