You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.6 KiB
83 lines
2.6 KiB
// Copyright (c) 2009-2010 Satoshi Nakamoto |
|
// Copyright (c) 2009-2016 The Bitcoin Core developers |
|
// Distributed under the MIT software license, see the accompanying |
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php. |
|
|
|
#include <sync.h> |
|
#include <clientversion.h> |
|
#include <util.h> |
|
#include <warnings.h> |
|
|
|
CCriticalSection cs_warnings; |
|
std::string strMiscWarning; |
|
bool fLargeWorkForkFound = false; |
|
bool fLargeWorkInvalidChainFound = false; |
|
|
|
void SetMiscWarning(const std::string& strWarning) |
|
{ |
|
LOCK(cs_warnings); |
|
strMiscWarning = strWarning; |
|
} |
|
|
|
void SetfLargeWorkForkFound(bool flag) |
|
{ |
|
LOCK(cs_warnings); |
|
fLargeWorkForkFound = flag; |
|
} |
|
|
|
bool GetfLargeWorkForkFound() |
|
{ |
|
LOCK(cs_warnings); |
|
return fLargeWorkForkFound; |
|
} |
|
|
|
void SetfLargeWorkInvalidChainFound(bool flag) |
|
{ |
|
LOCK(cs_warnings); |
|
fLargeWorkInvalidChainFound = flag; |
|
} |
|
|
|
std::string GetWarnings(const std::string& strFor) |
|
{ |
|
std::string strStatusBar; |
|
std::string strRPC; |
|
std::string strGUI; |
|
const std::string uiAlertSeperator = "<hr />"; |
|
|
|
LOCK(cs_warnings); |
|
|
|
if (!CLIENT_VERSION_IS_RELEASE) { |
|
strStatusBar = "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"; |
|
strGUI = _("This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"); |
|
} |
|
|
|
if (gArgs.GetBoolArg("-testsafemode", DEFAULT_TESTSAFEMODE)) |
|
strStatusBar = strRPC = strGUI = "testsafemode enabled"; |
|
|
|
// Misc warnings like out of disk space and clock is wrong |
|
if (strMiscWarning != "") |
|
{ |
|
strStatusBar = strMiscWarning; |
|
strGUI += (strGUI.empty() ? "" : uiAlertSeperator) + strMiscWarning; |
|
} |
|
|
|
if (fLargeWorkForkFound) |
|
{ |
|
strStatusBar = strRPC = "Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues."; |
|
strGUI += (strGUI.empty() ? "" : uiAlertSeperator) + _("Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues."); |
|
} |
|
else if (fLargeWorkInvalidChainFound) |
|
{ |
|
strStatusBar = strRPC = "Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade."; |
|
strGUI += (strGUI.empty() ? "" : uiAlertSeperator) + _("Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade."); |
|
} |
|
|
|
if (strFor == "gui") |
|
return strGUI; |
|
else if (strFor == "statusbar") |
|
return strStatusBar; |
|
else if (strFor == "rpc") |
|
return strRPC; |
|
assert(!"GetWarnings(): invalid parameter"); |
|
return "error"; |
|
}
|
|
|