From 2876ea6ea47bc50ddb7633171f52c1e3e8b8c648 Mon Sep 17 00:00:00 2001 From: agessaman Date: Sat, 8 Nov 2025 11:25:55 -0800 Subject: [PATCH] Remove duplicate MQTT function definitions from rebase --- src/helpers/CommonCLI.cpp | 167 -------------------------------------- 1 file changed, 167 deletions(-) diff --git a/src/helpers/CommonCLI.cpp b/src/helpers/CommonCLI.cpp index c414de0a..976e57af 100644 --- a/src/helpers/CommonCLI.cpp +++ b/src/helpers/CommonCLI.cpp @@ -1136,170 +1136,3 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch strcpy(reply, "Unknown command"); } } - -#ifdef WITH_MQTT_BRIDGE -// Set default values for MQTT preferences (used when file doesn't exist or is corrupted) -static void setMQTTPrefsDefaults(MQTTPrefs* prefs) { - memset(prefs, 0, sizeof(MQTTPrefs)); - // Set sensible defaults matching MQTTBridge expectations - StrHelper::strncpy(prefs->mqtt_origin, "MeshCore-Repeater", sizeof(prefs->mqtt_origin)); - StrHelper::strncpy(prefs->mqtt_iata, "XXX", sizeof(prefs->mqtt_iata)); - prefs->mqtt_status_enabled = 1; - prefs->mqtt_packets_enabled = 1; - prefs->mqtt_raw_enabled = 0; - prefs->mqtt_tx_enabled = 0; - prefs->mqtt_status_interval = 300000; // 5 minutes - StrHelper::strncpy(prefs->wifi_ssid, "ssid_here", sizeof(prefs->wifi_ssid)); - StrHelper::strncpy(prefs->wifi_password, "password_here", sizeof(prefs->wifi_password)); - StrHelper::strncpy(prefs->timezone_string, "America/Los_Angeles", sizeof(prefs->timezone_string)); - prefs->timezone_offset = -8; - prefs->mqtt_analyzer_us_enabled = 1; - prefs->mqtt_analyzer_eu_enabled = 1; -} - -void CommonCLI::loadMQTTPrefs(FILESYSTEM* fs) { - // Initialize with zeros - memset(&_mqtt_prefs, 0, sizeof(_mqtt_prefs)); - - if (fs->exists("/mqtt_prefs")) { - // Load from separate MQTT prefs file -#if defined(RP2040_PLATFORM) - File file = fs->open("/mqtt_prefs", "r"); -#else - File file = fs->open("/mqtt_prefs"); -#endif - if (file) { - // Verify file size is correct before reading - if (file.size() >= sizeof(_mqtt_prefs)) { - size_t bytes_read = file.read((uint8_t *)&_mqtt_prefs, sizeof(_mqtt_prefs)); - if (bytes_read != sizeof(_mqtt_prefs)) { - // File read incomplete - reinitialize to defaults - setMQTTPrefsDefaults(&_mqtt_prefs); - } - } else { - // File too small - reinitialize to defaults - setMQTTPrefsDefaults(&_mqtt_prefs); - } - file.close(); - } else { - // File open failed - use defaults - setMQTTPrefsDefaults(&_mqtt_prefs); - } - } else { - // Migration: Try to read from old /com_prefs file if it exists - // This handles the case where MQTT settings were previously stored in /com_prefs - if (fs->exists("/com_prefs")) { -#if defined(RP2040_PLATFORM) - File file = fs->open("/com_prefs", "r"); -#else - File file = fs->open("/com_prefs"); -#endif - if (file) { - // Skip to MQTT section (after discovery_mod_timestamp) - // Calculate offset: we need to skip everything up to and including discovery_mod_timestamp - // Note: discovery_mod_timestamp was added in upstream dev branch - size_t offset_to_mqtt = - sizeof(_prefs->airtime_factor) + sizeof(_prefs->node_name) + 4 + // pad - sizeof(_prefs->node_lat) + sizeof(_prefs->node_lon) + - sizeof(_prefs->password) + sizeof(_prefs->freq) + - sizeof(_prefs->tx_power_dbm) + sizeof(_prefs->disable_fwd) + - sizeof(_prefs->advert_interval) + 1 + // pad - sizeof(_prefs->rx_delay_base) + sizeof(_prefs->tx_delay_factor) + - sizeof(_prefs->guest_password) + sizeof(_prefs->direct_tx_delay_factor) + 4 + // pad - sizeof(_prefs->sf) + sizeof(_prefs->cr) + - sizeof(_prefs->allow_read_only) + sizeof(_prefs->multi_acks) + - sizeof(_prefs->bw) + sizeof(_prefs->agc_reset_interval) + 3 + // pad - sizeof(_prefs->flood_max) + sizeof(_prefs->flood_advert_interval) + - sizeof(_prefs->interference_threshold) + sizeof(_prefs->bridge_enabled) + - sizeof(_prefs->bridge_delay) + sizeof(_prefs->bridge_pkt_src) + - sizeof(_prefs->bridge_baud) + sizeof(_prefs->bridge_channel) + - sizeof(_prefs->bridge_secret) + 4 + // pad - sizeof(_prefs->gps_enabled) + sizeof(_prefs->gps_interval) + - sizeof(_prefs->advert_loc_policy) + - sizeof(_prefs->discovery_mod_timestamp); // Added in upstream dev branch - - // Check if file is large enough and seek succeeded - if (file.size() >= offset_to_mqtt + sizeof(_mqtt_prefs)) { - if (file.seek(offset_to_mqtt)) { - size_t bytes_read = file.read((uint8_t *)&_mqtt_prefs, sizeof(_mqtt_prefs)); - if (bytes_read == sizeof(_mqtt_prefs)) { - // Successfully migrated - save to new location for future use - file.close(); - saveMQTTPrefs(fs); - return; // Migration successful - } - } - } - file.close(); - // Migration failed - defaults already set, just return - return; - } - } - // No file exists and migration didn't happen - defaults already set - setMQTTPrefsDefaults(&_mqtt_prefs); - } -} - -void CommonCLI::saveMQTTPrefs(FILESYSTEM* fs) { -#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM) - fs->remove("/mqtt_prefs"); - File file = fs->open("/mqtt_prefs", FILE_O_WRITE); -#elif defined(RP2040_PLATFORM) - File file = fs->open("/mqtt_prefs", "w"); -#else - File file = fs->open("/mqtt_prefs", "w", true); -#endif - if (file) { - file.write((uint8_t *)&_mqtt_prefs, sizeof(_mqtt_prefs)); - file.close(); - } -} - -void CommonCLI::syncMQTTPrefsToNodePrefs() { - // Copy MQTT prefs to NodePrefs so existing code can access them - // Use StrHelper::strncpy to ensure proper null termination - StrHelper::strncpy(_prefs->mqtt_origin, _mqtt_prefs.mqtt_origin, sizeof(_prefs->mqtt_origin)); - StrHelper::strncpy(_prefs->mqtt_iata, _mqtt_prefs.mqtt_iata, sizeof(_prefs->mqtt_iata)); - _prefs->mqtt_status_enabled = _mqtt_prefs.mqtt_status_enabled; - _prefs->mqtt_packets_enabled = _mqtt_prefs.mqtt_packets_enabled; - _prefs->mqtt_raw_enabled = _mqtt_prefs.mqtt_raw_enabled; - _prefs->mqtt_tx_enabled = _mqtt_prefs.mqtt_tx_enabled; - _prefs->mqtt_status_interval = _mqtt_prefs.mqtt_status_interval; - StrHelper::strncpy(_prefs->wifi_ssid, _mqtt_prefs.wifi_ssid, sizeof(_prefs->wifi_ssid)); - StrHelper::strncpy(_prefs->wifi_password, _mqtt_prefs.wifi_password, sizeof(_prefs->wifi_password)); - StrHelper::strncpy(_prefs->timezone_string, _mqtt_prefs.timezone_string, sizeof(_prefs->timezone_string)); - _prefs->timezone_offset = _mqtt_prefs.timezone_offset; - StrHelper::strncpy(_prefs->mqtt_server, _mqtt_prefs.mqtt_server, sizeof(_prefs->mqtt_server)); - _prefs->mqtt_port = _mqtt_prefs.mqtt_port; - StrHelper::strncpy(_prefs->mqtt_username, _mqtt_prefs.mqtt_username, sizeof(_prefs->mqtt_username)); - StrHelper::strncpy(_prefs->mqtt_password, _mqtt_prefs.mqtt_password, sizeof(_prefs->mqtt_password)); - _prefs->mqtt_analyzer_us_enabled = _mqtt_prefs.mqtt_analyzer_us_enabled; - _prefs->mqtt_analyzer_eu_enabled = _mqtt_prefs.mqtt_analyzer_eu_enabled; - StrHelper::strncpy(_prefs->mqtt_owner_public_key, _mqtt_prefs.mqtt_owner_public_key, sizeof(_prefs->mqtt_owner_public_key)); - StrHelper::strncpy(_prefs->mqtt_email, _mqtt_prefs.mqtt_email, sizeof(_prefs->mqtt_email)); -} - -void CommonCLI::syncNodePrefsToMQTTPrefs() { - // Copy NodePrefs to MQTT prefs (used when saving after changes via CLI) - // Use StrHelper::strncpy to ensure proper null termination - StrHelper::strncpy(_mqtt_prefs.mqtt_origin, _prefs->mqtt_origin, sizeof(_mqtt_prefs.mqtt_origin)); - StrHelper::strncpy(_mqtt_prefs.mqtt_iata, _prefs->mqtt_iata, sizeof(_mqtt_prefs.mqtt_iata)); - _mqtt_prefs.mqtt_status_enabled = _prefs->mqtt_status_enabled; - _mqtt_prefs.mqtt_packets_enabled = _prefs->mqtt_packets_enabled; - _mqtt_prefs.mqtt_raw_enabled = _prefs->mqtt_raw_enabled; - _mqtt_prefs.mqtt_tx_enabled = _prefs->mqtt_tx_enabled; - _mqtt_prefs.mqtt_status_interval = _prefs->mqtt_status_interval; - StrHelper::strncpy(_mqtt_prefs.wifi_ssid, _prefs->wifi_ssid, sizeof(_mqtt_prefs.wifi_ssid)); - StrHelper::strncpy(_mqtt_prefs.wifi_password, _prefs->wifi_password, sizeof(_mqtt_prefs.wifi_password)); - StrHelper::strncpy(_mqtt_prefs.timezone_string, _prefs->timezone_string, sizeof(_mqtt_prefs.timezone_string)); - _mqtt_prefs.timezone_offset = _prefs->timezone_offset; - StrHelper::strncpy(_mqtt_prefs.mqtt_server, _prefs->mqtt_server, sizeof(_mqtt_prefs.mqtt_server)); - _mqtt_prefs.mqtt_port = _prefs->mqtt_port; - StrHelper::strncpy(_mqtt_prefs.mqtt_username, _prefs->mqtt_username, sizeof(_mqtt_prefs.mqtt_username)); - StrHelper::strncpy(_mqtt_prefs.mqtt_password, _prefs->mqtt_password, sizeof(_mqtt_prefs.mqtt_password)); - _mqtt_prefs.mqtt_analyzer_us_enabled = _prefs->mqtt_analyzer_us_enabled; - _mqtt_prefs.mqtt_analyzer_eu_enabled = _prefs->mqtt_analyzer_eu_enabled; - StrHelper::strncpy(_mqtt_prefs.mqtt_owner_public_key, _prefs->mqtt_owner_public_key, sizeof(_mqtt_prefs.mqtt_owner_public_key)); - StrHelper::strncpy(_mqtt_prefs.mqtt_email, _prefs->mqtt_email, sizeof(_mqtt_prefs.mqtt_email)); -} -#endif