From 5f698654914d268ce0feef431b3be36d1f7adfbc Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 2 May 2024 19:48:34 +0200 Subject: [PATCH] Fix authName --- NetworkLock.cpp | 16 +++++++++++----- NetworkLock.h | 2 +- NetworkOpener.cpp | 12 +++++++++--- NetworkOpener.h | 2 +- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/NetworkLock.cpp b/NetworkLock.cpp index 6c57ec5..a3a5d4e 100644 --- a/NetworkLock.cpp +++ b/NetworkLock.cpp @@ -20,6 +20,9 @@ NetworkLock::NetworkLock(Network* network, Preferences* preferences, char* buffe _configTopics.push_back(mqtt_topic_config_auto_unlock); _configTopics.push_back(mqtt_topic_config_auto_lock); _configTopics.push_back(mqtt_topic_config_single_lock); + + memset(_authName, 0, sizeof(_authName)); + _authName[0] = '\0'; _network->registerMqttReceiver(this); } @@ -224,7 +227,7 @@ void NetworkLock::onMqttDataReceived(const char* topic, byte* payload, const uns publishString(mqtt_topic_keypad_json_action, "--"); } - + if(comparePrefixedPath(topic, mqtt_topic_timecontrol_action)) { if(strcmp(value, "") == 0 || strcmp(value, "--") == 0) return; @@ -325,7 +328,7 @@ void NetworkLock::publishKeyTurnerState(const NukiLock::KeyTurnerState& keyTurne json["auth_id"] = _authId; json["auth_name"] = _authName; - + serializeJson(json, _buffer, _bufferSize); publishString(mqtt_topic_lock_json, _buffer); @@ -371,7 +374,8 @@ void NetworkLock::publishAuthorizationInfo(const std::list& char str[50]; _authId = 0; - _authName = ""; + memset(_authName, 0, sizeof(_authName)); + _authName[0] = '\0'; _authFound = false; JsonDocument json; @@ -388,14 +392,16 @@ void NetworkLock::publishAuthorizationInfo(const std::list& { _authFound = true; _authId = log.authId; - _authName = (char*)log.name; + int sizeName = sizeof(log.name); + memcpy(_authName, log.name, sizeName); + if(_authName[sizeName - 1] != '\0') _authName[sizeName] = '\0'; } auto entry = json.add(); entry["index"] = log.index; entry["authorizationId"] = log.authId; - entry["authorizationName"] = log.name; + entry["authorizationName"] = _authName; entry["timeYear"] = log.timeStampYear; entry["timeMonth"] = log.timeStampMonth; entry["timeDay"] = log.timeStampDay; diff --git a/NetworkLock.h b/NetworkLock.h index a9bf3f2..f9b1b9a 100644 --- a/NetworkLock.h +++ b/NetworkLock.h @@ -86,7 +86,7 @@ private: int _keypadCommandEnabled = 1; uint8_t _queryCommands = 0; uint32_t _authId = 0; - String _authName = ""; + char _authName[33]; bool _authFound = false; char* _buffer; diff --git a/NetworkOpener.cpp b/NetworkOpener.cpp index c55cc04..600f36f 100644 --- a/NetworkOpener.cpp +++ b/NetworkOpener.cpp @@ -16,6 +16,9 @@ NetworkOpener::NetworkOpener(Network* network, Preferences* preferences, char* b _configTopics.push_back(mqtt_topic_config_button_enabled); _configTopics.push_back(mqtt_topic_config_led_enabled); _configTopics.push_back(mqtt_topic_config_sound_level); + + memset(_authName, 0, sizeof(_authName)); + _authName[0] = '\0'; _network->registerMqttReceiver(this); } @@ -358,7 +361,8 @@ void NetworkOpener::publishAuthorizationInfo(const std::list