From 5ffd2a8303c91b99b7852dd5b335d35fc5fa2131 Mon Sep 17 00:00:00 2001 From: Konstantin Pastbin Date: Sun, 15 Dec 2024 23:24:21 +0300 Subject: [PATCH] [core] Limit server-set set settings to DonateUrl and NY Signed-off-by: Konstantin Pastbin --- platform/servers_list.cpp | 10 +++++++--- platform/settings.cpp | 3 ++- platform/settings.hpp | 4 +++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/platform/servers_list.cpp b/platform/servers_list.cpp index d71ba5275e..7650a82261 100644 --- a/platform/servers_list.cpp +++ b/platform/servers_list.cpp @@ -2,6 +2,7 @@ #include "platform/http_request.hpp" #include "platform/platform.hpp" +#include "platform/settings.hpp" #include "base/logging.hpp" #include "base/assert.hpp" @@ -38,9 +39,12 @@ std::optional ParseMetaConfig(std::string const & jsonStr) const json_t * value; json_object_foreach(settings, key, value) { - const char * valueStr = json_string_value(value); - if (key && value) - outMetaConfig.m_settings[key] = valueStr; + if (key == settings::kDonateUrl || key == settings::kNY) + { + const char * valueStr = json_string_value(value); + if (value) + outMetaConfig.m_settings[key] = valueStr; + } } servers = json_object_get(root.get(), kServers); diff --git a/platform/settings.cpp b/platform/settings.cpp index 0036adc124..15fd389109 100644 --- a/platform/settings.cpp +++ b/platform/settings.cpp @@ -23,8 +23,9 @@ using namespace std; std::string_view kMeasurementUnits = "Units"; std::string_view kMapLanguageCode = "MapLanguageCode"; std::string_view kDeveloperMode = "DeveloperMode"; -std::string_view kDonateUrl = "DonateUrl"; std::string_view kNightMode = "NightMode"; +std::string_view kDonateUrl = "DonateUrl"; +std::string_view kNY = "NY"; StringStorage::StringStorage() : StringStorageBase(GetPlatform().SettingsPathForFile(SETTINGS_FILE_NAME)) {} diff --git a/platform/settings.hpp b/platform/settings.hpp index 41f0a357b3..fd45e2b7f8 100644 --- a/platform/settings.hpp +++ b/platform/settings.hpp @@ -12,8 +12,10 @@ namespace settings extern std::string_view kMeasurementUnits; extern std::string_view kDeveloperMode; extern std::string_view kMapLanguageCode; -extern std::string_view kDonateUrl; extern std::string_view kNightMode; +// The following two settings are configured externally at the metaserver. +extern std::string_view kDonateUrl; +extern std::string_view kNY; template bool FromString(std::string const & str, T & outValue);