Skip to content

Commit 534cf54

Browse files
committed
Fix WiFi SSID and Password sscanf issue
1 parent 24462f3 commit 534cf54

File tree

2 files changed

+39
-18
lines changed

2 files changed

+39
-18
lines changed

Firmware/RTK_Everywhere/NVM.ino

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,15 +1147,22 @@ bool parseLine(char *str)
11471147
case _wifiNetwork:
11481148
{
11491149
int network;
1150-
if (sscanf(suffix, "%dSSID", &network) == 1)
1150+
1151+
if (strstr(suffix, "SSID") != nullptr)
11511152
{
1152-
strncpy(settings.wifiNetworks[network].ssid, settingString, sizeof(settings.wifiNetworks[0].ssid));
1153-
knownSetting = true;
1153+
if (sscanf(suffix, "%dSSID", &network) == 1)
1154+
{
1155+
strncpy(settings.wifiNetworks[network].ssid, settingString, sizeof(settings.wifiNetworks[0].ssid));
1156+
knownSetting = true;
1157+
}
11541158
}
1155-
else if (sscanf(suffix, "%dPassword", &network) == 1)
1159+
else if (strstr(suffix, "Password") != nullptr)
11561160
{
1157-
strncpy(settings.wifiNetworks[network].password, settingString, sizeof(settings.wifiNetworks[0].password));
1158-
knownSetting = true;
1161+
if (sscanf(suffix, "%dPassword", &network) == 1)
1162+
{
1163+
strncpy(settings.wifiNetworks[network].password, settingString, sizeof(settings.wifiNetworks[0].password));
1164+
knownSetting = true;
1165+
}
11591166
}
11601167
}
11611168
break;

Firmware/RTK_Everywhere/menuCommands.ino

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -328,15 +328,22 @@ bool updateSettingWithValue(const char *settingName, const char *settingValueStr
328328
case _wifiNetwork:
329329
{
330330
int network;
331-
if (sscanf(suffix, "%dSSID", &network) == 1)
331+
332+
if (strstr(suffix, "SSID") != nullptr)
332333
{
333-
strncpy(settings.wifiNetworks[network].ssid, settingValueStr, sizeof(settings.wifiNetworks[0].ssid));
334-
knownSetting = true;
334+
if (sscanf(suffix, "%dSSID", &network) == 1)
335+
{
336+
strncpy(settings.wifiNetworks[network].ssid, settingValueStr, sizeof(settings.wifiNetworks[0].ssid));
337+
knownSetting = true;
338+
}
335339
}
336-
else if (sscanf(suffix, "%dPassword", &network) == 1)
340+
else if (strstr(suffix, "Password") != nullptr)
337341
{
338-
strncpy(settings.wifiNetworks[network].password, settingValueStr, sizeof(settings.wifiNetworks[0].password));
339-
knownSetting = true;
342+
if (sscanf(suffix, "%dPassword", &network) == 1)
343+
{
344+
strncpy(settings.wifiNetworks[network].password, settingValueStr, sizeof(settings.wifiNetworks[0].password));
345+
knownSetting = true;
346+
}
340347
}
341348
}
342349
break;
@@ -1763,15 +1770,22 @@ bool getSettingValue(const char *settingName, char *settingValueStr)
17631770
case _wifiNetwork:
17641771
{
17651772
int network;
1766-
if (sscanf(suffix, "%dSSID", &network) == 1)
1773+
1774+
if (strstr(suffix, "SSID") != nullptr)
17671775
{
1768-
writeToString(settingValueStr, settings.wifiNetworks[network].ssid);
1769-
knownSetting = true;
1776+
if (sscanf(suffix, "%dSSID", &network) == 1)
1777+
{
1778+
writeToString(settingValueStr, settings.wifiNetworks[network].ssid);
1779+
knownSetting = true;
1780+
}
17701781
}
1771-
else if (sscanf(suffix, "%dPassword", &network) == 1)
1782+
else if (strstr(suffix, "Password") != nullptr)
17721783
{
1773-
writeToString(settingValueStr, settings.wifiNetworks[network].password);
1774-
knownSetting = true;
1784+
if (sscanf(suffix, "%dPassword", &network) == 1)
1785+
{
1786+
writeToString(settingValueStr, settings.wifiNetworks[network].password);
1787+
knownSetting = true;
1788+
}
17751789
}
17761790
}
17771791
break;

0 commit comments

Comments
 (0)