1
1
#include " SinricProWiFiSettings.h"
2
2
3
- SinricProWiFiSettings::SinricProWiFiSettings (const char * defaultPrimarySSID, const char * defaultPrimaryPassword,
3
+ SinricProWiFiSettings::SinricProWiFiSettings (fs::FS& fs,
4
+ const char * defaultPrimarySSID, const char * defaultPrimaryPassword,
4
5
const char * defaultSecondarySSID, const char * defaultSecondaryPassword,
5
6
const char * configFileName)
6
- : defaultPrimarySSID(defaultPrimarySSID), defaultPrimaryPassword(defaultPrimaryPassword),
7
+ : fs(fs)
8
+ , defaultPrimarySSID(defaultPrimarySSID), defaultPrimaryPassword(defaultPrimaryPassword),
7
9
defaultSecondarySSID(defaultSecondarySSID), defaultSecondaryPassword(defaultSecondaryPassword),
8
10
configFileName(configFileName) {
9
11
memset (&wifiSettings, 0 , sizeof (wifiSettings));
@@ -18,8 +20,8 @@ void SinricProWiFiSettings::begin() {
18
20
19
21
void SinricProWiFiSettings::updatePrimarySettings (const char * newSSID, const char * newPassword) {
20
22
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 ));
23
25
saveToFile ();
24
26
} else {
25
27
Serial.println (" Invalid Primary SSID or Password" );
@@ -28,8 +30,8 @@ void SinricProWiFiSettings::updatePrimarySettings(const char* newSSID, const cha
28
30
29
31
void SinricProWiFiSettings::updateSecondarySettings (const char * newSSID, const char * newPassword) {
30
32
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 ));
33
35
saveToFile ();
34
36
} else {
35
37
Serial.println (" Invalid Secondary SSID or Password" );
@@ -44,12 +46,7 @@ void SinricProWiFiSettings::printSettings() const {
44
46
}
45
47
46
48
void 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" );
53
50
54
51
if (file) {
55
52
file.write (reinterpret_cast <const uint8_t *>(&wifiSettings), sizeof (wifiSettings));
@@ -58,11 +55,7 @@ void SinricProWiFiSettings::saveToFile() {
58
55
}
59
56
60
57
bool 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" );
66
59
67
60
if (file && file.size () == sizeof (wifiSettings)) {
68
61
file.read (reinterpret_cast <uint8_t *>(&wifiSettings), sizeof (wifiSettings));
@@ -75,18 +68,18 @@ bool SinricProWiFiSettings::loadFromFile() {
75
68
void SinricProWiFiSettings::saveDefaultSettings () {
76
69
Serial.println (" Saving default WiFi login!" );
77
70
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 ));
82
75
83
76
saveToFile ();
84
77
}
85
78
86
79
void SinricProWiFiSettings::deleteAllSettings () {
87
80
memset (&wifiSettings, 0 , sizeof (wifiSettings));
88
- if (LittleFS .exists (configFileName)) {
89
- LittleFS .remove (configFileName);
81
+ if (fs .exists (configFileName)) {
82
+ fs .remove (configFileName);
90
83
}
91
84
Serial.println (" All WiFi settings have been deleted." );
92
85
}
0 commit comments