Allow extended ascii in ssid

This commit is contained in:
Gunnar Skjold 2023-02-21 13:55:38 +01:00
parent 0f75fa4a58
commit 98309ea532
3 changed files with 6 additions and 4 deletions

View File

@ -7,6 +7,6 @@
String toHex(uint8_t* in);
String toHex(uint8_t* in, uint16_t size);
void fromHex(uint8_t *out, String in, uint16_t size);
void stripNonAscii(uint8_t* in, uint16_t size);
void stripNonAscii(uint8_t* in, uint16_t size, bool extended = false);
#endif

View File

@ -62,7 +62,7 @@ bool AmsConfiguration::setWiFiConfig(WiFiConfig& config) {
wifiChanged = true;
}
stripNonAscii((uint8_t*) config.ssid, 32);
stripNonAscii((uint8_t*) config.ssid, 32, true);
stripNonAscii((uint8_t*) config.psk, 64);
stripNonAscii((uint8_t*) config.ip, 16);
stripNonAscii((uint8_t*) config.gateway, 16);

View File

@ -22,13 +22,15 @@ void fromHex(uint8_t *out, String in, uint16_t size) {
}
}
void stripNonAscii(uint8_t* in, uint16_t size) {
void stripNonAscii(uint8_t* in, uint16_t size, bool extended) {
for(uint16_t i = 0; i < size; i++) {
if(in[i] == 0) { // Clear the rest with null-terminator
memset(in+i, 0, size-i);
break;
}
if(in[i] < 32 || in[i] > 126) {
if(extended && (in[i] < 32 || in[i] == 127 || in[i] == 129 || in[i] == 141 || in[i] == 143 || in[i] == 144 || in[i] == 157)) {
memset(in+i, ' ', 1);
} else if(in[i] < 32 || in[i] > 126) {
memset(in+i, ' ', 1);
}
}