boost: drop boost dependency in version.cpp.

Also add a test to verify.
This commit is contained in:
Cory Fields 2014-10-13 14:15:19 -04:00
parent 352058e8b0
commit 5f4bcf6b14
2 changed files with 19 additions and 3 deletions

View file

@ -9,6 +9,7 @@
#include "sync.h" #include "sync.h"
#include "utilstrencodings.h" #include "utilstrencodings.h"
#include "utilmoneystr.h" #include "utilmoneystr.h"
#include "version.h"
#include <stdint.h> #include <stdint.h>
#include <vector> #include <vector>
@ -341,4 +342,15 @@ BOOST_AUTO_TEST_CASE(test_FormatParagraph)
BOOST_CHECK_EQUAL(FormatParagraph("test test", 4, 4), "test\n test"); BOOST_CHECK_EQUAL(FormatParagraph("test test", 4, 4), "test\n test");
} }
BOOST_AUTO_TEST_CASE(test_FormatSubVersion)
{
std::vector<std::string> comments;
comments.push_back(std::string("comment1"));
std::vector<std::string> comments2;
comments2.push_back(std::string("comment1"));
comments2.push_back(std::string("comment2"));
BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, std::vector<std::string>()),std::string("/Test:0.9.99/"));
BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, comments),std::string("/Test:0.9.99(comment1)/"));
BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, comments2),std::string("/Test:0.9.99(comment1; comment2)/"));
}
BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE_END()

View file

@ -8,8 +8,6 @@
#include <string> #include <string>
#include <boost/algorithm/string/join.hpp>
// Name of client reported in the 'version' message. Report the same name // 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 // for both bitcoind and bitcoin-qt, to make it harder for attackers to
// target servers or GUI users specifically. // target servers or GUI users specifically.
@ -94,7 +92,13 @@ std::string FormatSubVersion(const std::string& name, int nClientVersion, const
ss << "/"; ss << "/";
ss << name << ":" << FormatVersion(nClientVersion); ss << name << ":" << FormatVersion(nClientVersion);
if (!comments.empty()) if (!comments.empty())
ss << "(" << boost::algorithm::join(comments, "; ") << ")"; {
std::vector<std::string>::const_iterator it(comments.begin());
ss << "(" << *it;
for(++it; it != comments.end(); ++it)
ss << "; " << *it;
ss << ")";
}
ss << "/"; ss << "/";
return ss.str(); return ss.str();
} }