Skip to content

Commit 636c630

Browse files
authored
Merge pull request #9595 from s-hadinger/fix-fingerprint-compilation
Fix TLS fingerprint compilation #9582
2 parents d03d1c3 + b599b5b commit 636c630

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

tasmota/settings.ino

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,10 @@ void SettingsDefaultSet1(void)
718718
// Settings.cfg_crc = 0;
719719
}
720720

721+
// default Fingerprints in PROGMEM
722+
const uint8_t default_fingerprint1[] PROGMEM = { MQTT_FINGERPRINT1 };
723+
const uint8_t default_fingerprint2[] PROGMEM = { MQTT_FINGERPRINT2 };
724+
721725
void SettingsDefaultSet2(void)
722726
{
723727
memset((char*)&Settings +16, 0x00, sizeof(Settings) -16);
@@ -874,10 +878,8 @@ void SettingsDefaultSet2(void)
874878
SettingsUpdateText(SET_STATE_TXT2, MQTT_STATUS_ON);
875879
SettingsUpdateText(SET_STATE_TXT3, MQTT_CMND_TOGGLE);
876880
SettingsUpdateText(SET_STATE_TXT4, MQTT_CMND_HOLD);
877-
static const uint8_t fingerprint1[] PROGMEM = { MQTT_FINGERPRINT1 };
878-
static const uint8_t fingerprint2[] PROGMEM = { MQTT_FINGERPRINT2 };
879-
memcpy_P(Settings.mqtt_fingerprint[0], fingerprint1, sizeof(fingerprint1));
880-
memcpy_P(Settings.mqtt_fingerprint[1], fingerprint2, sizeof(fingerprint2));
881+
memcpy_P(Settings.mqtt_fingerprint[0], default_fingerprint1, sizeof(default_fingerprint1));
882+
memcpy_P(Settings.mqtt_fingerprint[1], default_fingerprint2, sizeof(default_fingerprint2));
881883
Settings.tele_period = TELE_PERIOD;
882884
Settings.mqttlog_level = MQTT_LOG_LEVEL;
883885

tasmota/xdrv_02_mqtt.ino

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -801,10 +801,14 @@ void CmndMqttFingerprint(void)
801801
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= 2)) {
802802
char fingerprint[60];
803803
if ((XdrvMailbox.data_len > 0) && (XdrvMailbox.data_len < sizeof(fingerprint))) {
804-
strlcpy(fingerprint, (SC_CLEAR == Shortcut()) ? "" : (SC_DEFAULT == Shortcut()) ? (1 == XdrvMailbox.index) ? MQTT_FINGERPRINT1 : MQTT_FINGERPRINT2 : XdrvMailbox.data, sizeof(fingerprint));
805-
char *p = fingerprint;
806-
for (uint32_t i = 0; i < 20; i++) {
807-
Settings.mqtt_fingerprint[XdrvMailbox.index -1][i] = strtol(p, &p, 16);
804+
if (SC_DEFAULT == Shortcut()) {
805+
memcpy_P(Settings.mqtt_fingerprint[XdrvMailbox.index -1], (1 == XdrvMailbox.index) ? default_fingerprint1 : default_fingerprint2, sizeof(default_fingerprint1));
806+
} else {
807+
strlcpy(fingerprint, (SC_CLEAR == Shortcut()) ? "" : XdrvMailbox.data, sizeof(fingerprint));
808+
char *p = fingerprint;
809+
for (uint32_t i = 0; i < 20; i++) {
810+
Settings.mqtt_fingerprint[XdrvMailbox.index -1][i] = strtol(p, &p, 16);
811+
}
808812
}
809813
restart_flag = 2;
810814
}

0 commit comments

Comments
 (0)