|
|
|
@ -4,7 +4,10 @@
@@ -4,7 +4,10 @@
|
|
|
|
|
|
|
|
|
|
#include "version.h" |
|
|
|
|
|
|
|
|
|
#include "tinyformat.h" |
|
|
|
|
|
|
|
|
|
#include <string> |
|
|
|
|
#include <boost/algorithm/string/join.hpp> |
|
|
|
|
|
|
|
|
|
// Name of client reported in the 'version' message. Report the same name
|
|
|
|
|
// for both bitcoind and bitcoin-qt, to make it harder for attackers to
|
|
|
|
@ -69,3 +72,28 @@ const std::string CLIENT_NAME("Satoshi");
@@ -69,3 +72,28 @@ const std::string CLIENT_NAME("Satoshi");
|
|
|
|
|
|
|
|
|
|
const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX); |
|
|
|
|
const std::string CLIENT_DATE(BUILD_DATE); |
|
|
|
|
|
|
|
|
|
static std::string FormatVersion(int nVersion) |
|
|
|
|
{ |
|
|
|
|
if (nVersion%100 == 0) |
|
|
|
|
return strprintf("%d.%d.%d", nVersion/1000000, (nVersion/10000)%100, (nVersion/100)%100); |
|
|
|
|
else |
|
|
|
|
return strprintf("%d.%d.%d.%d", nVersion/1000000, (nVersion/10000)%100, (nVersion/100)%100, nVersion%100); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::string FormatFullVersion() |
|
|
|
|
{ |
|
|
|
|
return CLIENT_BUILD; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Format the subversion field according to BIP 14 spec (https://en.bitcoin.it/wiki/BIP_0014)
|
|
|
|
|
std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector<std::string>& comments) |
|
|
|
|
{ |
|
|
|
|
std::ostringstream ss; |
|
|
|
|
ss << "/"; |
|
|
|
|
ss << name << ":" << FormatVersion(nClientVersion); |
|
|
|
|
if (!comments.empty()) |
|
|
|
|
ss << "(" << boost::algorithm::join(comments, "; ") << ")"; |
|
|
|
|
ss << "/"; |
|
|
|
|
return ss.str(); |
|
|
|
|
} |
|
|
|
|