diff --git a/src/cpp/ServerConfig.cpp b/src/cpp/ServerConfig.cpp index 70e1b3ff5..b13f1d8d9 100644 --- a/src/cpp/ServerConfig.cpp +++ b/src/cpp/ServerConfig.cpp @@ -127,6 +127,19 @@ namespace ServerConfig { return true; } + ServerSetupType getServerSetupTypeFromString(const std::string& serverSetupTypeString) { + if ("test" == serverSetupTypeString) { + return SERVER_TYPE_TEST; + } + if ("staging" == serverSetupTypeString) { + return SERVER_TYPE_STAGING; + } + if ("production" == serverSetupTypeString) { + return SERVER_TYPE_PRODUCTION; + } + return SERVER_TYPE_PRODUCTION; + } + bool loadMnemonicWordLists() { @@ -191,11 +204,10 @@ namespace ServerConfig { g_php_serverPath = cfg.getString("phpServer.url", ""); replaceZeroIPWithLocalhostIP(g_php_serverPath); g_php_serverHost = cfg.getString("phpServer.host", ""); - //replaceZeroIPWithLocalhostIP(g_php_serverHost); - /*std::string testIp = "http://0.0.0.0/account"; - replaceZeroIPWithLocalhostIP(testIp); - printf("testIp: %s\n", testIp.data());*/ - //g_FakeLoginSleepTime = cfg.getInt("crypto.fake_login_sleep_time", g_FakeLoginSleepTime); + //g_ServerSetupType + auto serverSetupTypeString = cfg.getString("ServerSetupType", ""); + g_ServerSetupType = getServerSetupTypeFromString(serverSetupTypeString); + return true; } diff --git a/src/cpp/ServerConfig.h b/src/cpp/ServerConfig.h index 6f12b28c9..f093edf75 100644 --- a/src/cpp/ServerConfig.h +++ b/src/cpp/ServerConfig.h @@ -31,6 +31,13 @@ namespace ServerConfig { int port; }; + enum ServerSetupType { + SERVER_TYPE_TEST, + SERVER_TYPE_STAGING, + SERVER_TYPE_PRODUCTION + }; + + extern Mnemonic g_Mnemonic_WordLists[MNEMONIC_MAX]; extern ObfusArray* g_ServerCryptoKey; @@ -50,6 +57,7 @@ namespace ServerConfig { extern int g_FakeLoginSleepTime; extern std::string g_versionString; extern bool g_disableEmail; + extern ServerSetupType g_ServerSetupType; bool loadMnemonicWordLists(); bool initServerCrypto(const Poco::Util::LayeredConfiguration& cfg); diff --git a/src/cpp/model/Session.cpp b/src/cpp/model/Session.cpp index 226460cbb..8bb5e0852 100644 --- a/src/cpp/model/Session.cpp +++ b/src/cpp/model/Session.cpp @@ -860,9 +860,12 @@ Poco::Net::HTTPCookie Session::getLoginCookie() // prevent reading or changing cookie with js keks.setHttpOnly(); keks.setPath("/"); - // send cookie only via https + // send cookie only via https, on linux, except in test builds #ifndef WIN32 - keks.setSecure(true); + if (SERVER_TYPE_PRODUCTION == ServerConfig::g_ServerSetupType || + SERVER_TYPE_STAGING == ServerConfig::g_ServerSetupType) { + keks.setSecure(true); + } #endif return keks;