11#include " SinricProWiFiSettings.h"
22
3- SinricProWiFiSettings::SinricProWiFiSettings (const char * defaultPrimarySSID, const char * defaultPrimaryPassword,
3+ SinricProWiFiSettings::SinricProWiFiSettings (fs::FS& fs,
4+ const char * defaultPrimarySSID, const char * defaultPrimaryPassword,
45 const char * defaultSecondarySSID, const char * defaultSecondaryPassword,
56 const char * configFileName)
6- : defaultPrimarySSID(defaultPrimarySSID), defaultPrimaryPassword(defaultPrimaryPassword),
7+ : fs(fs)
8+ , defaultPrimarySSID(defaultPrimarySSID), defaultPrimaryPassword(defaultPrimaryPassword),
79 defaultSecondarySSID(defaultSecondarySSID), defaultSecondaryPassword(defaultSecondaryPassword),
810 configFileName(configFileName) {
911 memset (&wifiSettings, 0 , sizeof (wifiSettings));
@@ -18,8 +20,8 @@ void SinricProWiFiSettings::begin() {
1820
1921void SinricProWiFiSettings::updatePrimarySettings (const char * newSSID, const char * newPassword) {
2022 if (isValidSetting (newSSID, newPassword)) {
21- strncpy (wifiSettings.primarySSID , newSSID, sizeof (wifiSettings.primarySSID ));
22- strncpy (wifiSettings.primaryPassword , newPassword, sizeof (wifiSettings.primaryPassword ));
23+ strlcpy (wifiSettings.primarySSID , newSSID, sizeof (wifiSettings.primarySSID ));
24+ strlcpy (wifiSettings.primaryPassword , newPassword, sizeof (wifiSettings.primaryPassword ));
2325 saveToFile ();
2426 } else {
2527 Serial.println (" Invalid Primary SSID or Password" );
@@ -28,8 +30,8 @@ void SinricProWiFiSettings::updatePrimarySettings(const char* newSSID, const cha
2830
2931void SinricProWiFiSettings::updateSecondarySettings (const char * newSSID, const char * newPassword) {
3032 if (isValidSetting (newSSID, newPassword)) {
31- strncpy (wifiSettings.secondarySSID , newSSID, sizeof (wifiSettings.secondarySSID ));
32- strncpy (wifiSettings.secondaryPassword , newPassword, sizeof (wifiSettings.secondaryPassword ));
33+ strlcpy (wifiSettings.secondarySSID , newSSID, sizeof (wifiSettings.secondarySSID ));
34+ strlcpy (wifiSettings.secondaryPassword , newPassword, sizeof (wifiSettings.secondaryPassword ));
3335 saveToFile ();
3436 } else {
3537 Serial.println (" Invalid Secondary SSID or Password" );
@@ -44,12 +46,7 @@ void SinricProWiFiSettings::printSettings() const {
4446}
4547
4648void SinricProWiFiSettings::saveToFile () {
47-
48- #if defined(ESP8266)
49- File file = LittleFS.open (configFileName, " w" );
50- #elif defined(ESP32)
51- File file = LittleFS.open (configFileName, FILE_WRITE);
52- #endif
49+ File file = fs.open (configFileName, " w" );
5350
5451 if (file) {
5552 file.write (reinterpret_cast <const uint8_t *>(&wifiSettings), sizeof (wifiSettings));
@@ -58,11 +55,7 @@ void SinricProWiFiSettings::saveToFile() {
5855}
5956
6057bool SinricProWiFiSettings::loadFromFile () {
61- #if defined(ESP8266)
62- File file = LittleFS.open (configFileName, " r" );
63- #elif defined(ESP32)
64- File file = LittleFS.open (configFileName, FILE_READ);
65- #endif
58+ File file = fs.open (configFileName, " r" );
6659
6760 if (file && file.size () == sizeof (wifiSettings)) {
6861 file.read (reinterpret_cast <uint8_t *>(&wifiSettings), sizeof (wifiSettings));
@@ -75,18 +68,18 @@ bool SinricProWiFiSettings::loadFromFile() {
7568void SinricProWiFiSettings::saveDefaultSettings () {
7669 Serial.println (" Saving default WiFi login!" );
7770
78- strncpy (wifiSettings.primarySSID , defaultPrimarySSID, sizeof (wifiSettings.primarySSID ));
79- strncpy (wifiSettings.primaryPassword , defaultPrimaryPassword, sizeof (wifiSettings.primaryPassword ));
80- strncpy (wifiSettings.secondarySSID , defaultSecondarySSID, sizeof (wifiSettings.secondarySSID ));
81- strncpy (wifiSettings.secondaryPassword , defaultSecondaryPassword, sizeof (wifiSettings.secondaryPassword ));
71+ strlcpy (wifiSettings.primarySSID , defaultPrimarySSID, sizeof (wifiSettings.primarySSID ));
72+ strlcpy (wifiSettings.primaryPassword , defaultPrimaryPassword, sizeof (wifiSettings.primaryPassword ));
73+ strlcpy (wifiSettings.secondarySSID , defaultSecondarySSID, sizeof (wifiSettings.secondarySSID ));
74+ strlcpy (wifiSettings.secondaryPassword , defaultSecondaryPassword, sizeof (wifiSettings.secondaryPassword ));
8275
8376 saveToFile ();
8477}
8578
8679void SinricProWiFiSettings::deleteAllSettings () {
8780 memset (&wifiSettings, 0 , sizeof (wifiSettings));
88- if (LittleFS .exists (configFileName)) {
89- LittleFS .remove (configFileName);
81+ if (fs .exists (configFileName)) {
82+ fs .remove (configFileName);
9083 }
9184 Serial.println (" All WiFi settings have been deleted." );
9285}
0 commit comments