namespace: remove boost namespace pollution
This commit is contained in:
parent
f55c5e9749
commit
a3241998e1
13 changed files with 53 additions and 67 deletions
|
@ -15,8 +15,6 @@
|
||||||
#define _(x) std::string(x) /* Keep the _() around in case gettext or such will be used later to translate non-UI */
|
#define _(x) std::string(x) /* Keep the _() around in case gettext or such will be used later to translate non-UI */
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::asio;
|
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
|
|
||||||
std::string HelpMessageCli()
|
std::string HelpMessageCli()
|
||||||
|
@ -108,12 +106,12 @@ Object CallRPC(const string& strMethod, const Array& params)
|
||||||
|
|
||||||
// Connect to localhost
|
// Connect to localhost
|
||||||
bool fUseSSL = GetBoolArg("-rpcssl", false);
|
bool fUseSSL = GetBoolArg("-rpcssl", false);
|
||||||
asio::io_service io_service;
|
boost::asio::io_service io_service;
|
||||||
ssl::context context(io_service, ssl::context::sslv23);
|
boost::asio::ssl::context context(io_service, boost::asio::ssl::context::sslv23);
|
||||||
context.set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3);
|
context.set_options(boost::asio::ssl::context::no_sslv2 | boost::asio::ssl::context::no_sslv3);
|
||||||
asio::ssl::stream<asio::ip::tcp::socket> sslStream(io_service, context);
|
boost::asio::ssl::stream<boost::asio::ip::tcp::socket> sslStream(io_service, context);
|
||||||
SSLIOStreamDevice<asio::ip::tcp> d(sslStream, fUseSSL);
|
SSLIOStreamDevice<boost::asio::ip::tcp> d(sslStream, fUseSSL);
|
||||||
iostreams::stream< SSLIOStreamDevice<asio::ip::tcp> > stream(d);
|
boost::iostreams::stream< SSLIOStreamDevice<boost::asio::ip::tcp> > stream(d);
|
||||||
|
|
||||||
const bool fConnected = d.connect(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", itostr(BaseParams().RPCPort())));
|
const bool fConnected = d.connect(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", itostr(BaseParams().RPCPort())));
|
||||||
if (!fConnected)
|
if (!fConnected)
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include <boost/algorithm/string/split.hpp>
|
#include <boost/algorithm/string/split.hpp>
|
||||||
#include <boost/assign/list_of.hpp>
|
#include <boost/assign/list_of.hpp>
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::algorithm;
|
using namespace boost::algorithm;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost;
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int nWalletDBUpdated;
|
unsigned int nWalletDBUpdated;
|
||||||
|
@ -73,9 +72,9 @@ bool CDBEnv::Open(const boost::filesystem::path& pathIn)
|
||||||
boost::this_thread::interruption_point();
|
boost::this_thread::interruption_point();
|
||||||
|
|
||||||
path = pathIn;
|
path = pathIn;
|
||||||
filesystem::path pathLogDir = path / "database";
|
boost::filesystem::path pathLogDir = path / "database";
|
||||||
TryCreateDirectory(pathLogDir);
|
TryCreateDirectory(pathLogDir);
|
||||||
filesystem::path pathErrorFile = path / "db.log";
|
boost::filesystem::path pathErrorFile = path / "db.log";
|
||||||
LogPrintf("CDBEnv::Open : LogDir=%s ErrorFile=%s\n", pathLogDir.string(), pathErrorFile.string());
|
LogPrintf("CDBEnv::Open : LogDir=%s ErrorFile=%s\n", pathLogDir.string(), pathErrorFile.string());
|
||||||
|
|
||||||
unsigned int nEnvFlags = 0;
|
unsigned int nEnvFlags = 0;
|
||||||
|
|
25
src/init.cpp
25
src/init.cpp
|
@ -43,7 +43,6 @@
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
|
@ -427,12 +426,12 @@ void ThreadImport(std::vector<boost::filesystem::path> vImportFiles)
|
||||||
}
|
}
|
||||||
|
|
||||||
// hardcoded $DATADIR/bootstrap.dat
|
// hardcoded $DATADIR/bootstrap.dat
|
||||||
filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
|
boost::filesystem::path pathBootstrap = GetDataDir() / "bootstrap.dat";
|
||||||
if (filesystem::exists(pathBootstrap)) {
|
if (boost::filesystem::exists(pathBootstrap)) {
|
||||||
FILE *file = fopen(pathBootstrap.string().c_str(), "rb");
|
FILE *file = fopen(pathBootstrap.string().c_str(), "rb");
|
||||||
if (file) {
|
if (file) {
|
||||||
CImportingNow imp;
|
CImportingNow imp;
|
||||||
filesystem::path pathBootstrapOld = GetDataDir() / "bootstrap.dat.old";
|
boost::filesystem::path pathBootstrapOld = GetDataDir() / "bootstrap.dat.old";
|
||||||
LogPrintf("Importing bootstrap.dat...\n");
|
LogPrintf("Importing bootstrap.dat...\n");
|
||||||
LoadExternalBlockFile(file);
|
LoadExternalBlockFile(file);
|
||||||
RenameOver(pathBootstrap, pathBootstrapOld);
|
RenameOver(pathBootstrap, pathBootstrapOld);
|
||||||
|
@ -816,7 +815,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filesystem::exists(GetDataDir() / strWalletFile))
|
if (boost::filesystem::exists(GetDataDir() / strWalletFile))
|
||||||
{
|
{
|
||||||
CDBEnv::VerifyResult r = bitdb.Verify(strWalletFile, CWalletDB::Recover);
|
CDBEnv::VerifyResult r = bitdb.Verify(strWalletFile, CWalletDB::Recover);
|
||||||
if (r == CDBEnv::RECOVER_OK)
|
if (r == CDBEnv::RECOVER_OK)
|
||||||
|
@ -937,20 +936,20 @@ bool AppInit2(boost::thread_group& threadGroup)
|
||||||
fReindex = GetBoolArg("-reindex", false);
|
fReindex = GetBoolArg("-reindex", false);
|
||||||
|
|
||||||
// Upgrading to 0.8; hard-link the old blknnnn.dat files into /blocks/
|
// Upgrading to 0.8; hard-link the old blknnnn.dat files into /blocks/
|
||||||
filesystem::path blocksDir = GetDataDir() / "blocks";
|
boost::filesystem::path blocksDir = GetDataDir() / "blocks";
|
||||||
if (!filesystem::exists(blocksDir))
|
if (!boost::filesystem::exists(blocksDir))
|
||||||
{
|
{
|
||||||
filesystem::create_directories(blocksDir);
|
boost::filesystem::create_directories(blocksDir);
|
||||||
bool linked = false;
|
bool linked = false;
|
||||||
for (unsigned int i = 1; i < 10000; i++) {
|
for (unsigned int i = 1; i < 10000; i++) {
|
||||||
filesystem::path source = GetDataDir() / strprintf("blk%04u.dat", i);
|
boost::filesystem::path source = GetDataDir() / strprintf("blk%04u.dat", i);
|
||||||
if (!filesystem::exists(source)) break;
|
if (!boost::filesystem::exists(source)) break;
|
||||||
filesystem::path dest = blocksDir / strprintf("blk%05u.dat", i-1);
|
boost::filesystem::path dest = blocksDir / strprintf("blk%05u.dat", i-1);
|
||||||
try {
|
try {
|
||||||
filesystem::create_hard_link(source, dest);
|
boost::filesystem::create_hard_link(source, dest);
|
||||||
LogPrintf("Hardlinked %s -> %s\n", source.string(), dest.string());
|
LogPrintf("Hardlinked %s -> %s\n", source.string(), dest.string());
|
||||||
linked = true;
|
linked = true;
|
||||||
} catch (const filesystem::filesystem_error& e) {
|
} catch (const boost::filesystem::filesystem_error& e) {
|
||||||
// Note: hardlink creation failing is not a disaster, it just means
|
// Note: hardlink creation failing is not a disaster, it just means
|
||||||
// blocks will get re-downloaded from peers.
|
// blocks will get re-downloaded from peers.
|
||||||
LogPrintf("Error hardlinking blk%04u.dat : %s\n", i, e.what());
|
LogPrintf("Error hardlinking blk%04u.dat : %s\n", i, e.what());
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include <boost/filesystem/fstream.hpp>
|
#include <boost/filesystem/fstream.hpp>
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
#if defined(NDEBUG)
|
#if defined(NDEBUG)
|
||||||
|
@ -2788,7 +2787,7 @@ bool AbortNode(const std::string &strMessage, const std::string &userMessage) {
|
||||||
|
|
||||||
bool CheckDiskSpace(uint64_t nAdditionalBytes)
|
bool CheckDiskSpace(uint64_t nAdditionalBytes)
|
||||||
{
|
{
|
||||||
uint64_t nFreeBytesAvailable = filesystem::space(GetDataDir()).available;
|
uint64_t nFreeBytesAvailable = boost::filesystem::space(GetDataDir()).available;
|
||||||
|
|
||||||
// Check for nMinDiskSpace bytes (currently 50MB)
|
// Check for nMinDiskSpace bytes (currently 50MB)
|
||||||
if (nFreeBytesAvailable < nMinDiskSpace + nAdditionalBytes)
|
if (nFreeBytesAvailable < nMinDiskSpace + nAdditionalBytes)
|
||||||
|
|
|
@ -49,7 +49,6 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
#include <QUrlQuery>
|
#include <QUrlQuery>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "json/json_spirit_utils.h"
|
#include "json/json_spirit_utils.h"
|
||||||
#include "json/json_spirit_value.h"
|
#include "json/json_spirit_value.h"
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::assign;
|
using namespace boost::assign;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#include "json/json_spirit_writer_template.h"
|
#include "json/json_spirit_writer_template.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::asio;
|
using namespace boost::asio;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#include "json/json_spirit_utils.h"
|
#include "json/json_spirit_utils.h"
|
||||||
#include "json/json_spirit_value.h"
|
#include "json/json_spirit_value.h"
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::assign;
|
using namespace boost::assign;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
#include "json/json_spirit_writer_template.h"
|
#include "json/json_spirit_writer_template.h"
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::asio;
|
using namespace boost::asio;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
@ -39,7 +38,7 @@ static std::string rpcWarmupStatus("RPC server started");
|
||||||
static CCriticalSection cs_rpcWarmup;
|
static CCriticalSection cs_rpcWarmup;
|
||||||
|
|
||||||
//! These are created by StartRPCThreads, destroyed in StopRPCThreads
|
//! These are created by StartRPCThreads, destroyed in StopRPCThreads
|
||||||
static asio::io_service* rpc_io_service = NULL;
|
static boost::asio::io_service* rpc_io_service = NULL;
|
||||||
static map<string, boost::shared_ptr<deadline_timer> > deadlineTimers;
|
static map<string, boost::shared_ptr<deadline_timer> > deadlineTimers;
|
||||||
static ssl::context* rpc_ssl_context = NULL;
|
static ssl::context* rpc_ssl_context = NULL;
|
||||||
static boost::thread_group* rpc_worker_group = NULL;
|
static boost::thread_group* rpc_worker_group = NULL;
|
||||||
|
@ -428,7 +427,7 @@ class AcceptedConnectionImpl : public AcceptedConnection
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AcceptedConnectionImpl(
|
AcceptedConnectionImpl(
|
||||||
asio::io_service& io_service,
|
boost::asio::io_service& io_service,
|
||||||
ssl::context &context,
|
ssl::context &context,
|
||||||
bool fUseSSL) :
|
bool fUseSSL) :
|
||||||
sslStream(io_service, context),
|
sslStream(io_service, context),
|
||||||
|
@ -453,11 +452,11 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
typename Protocol::endpoint peer;
|
typename Protocol::endpoint peer;
|
||||||
asio::ssl::stream<typename Protocol::socket> sslStream;
|
boost::asio::ssl::stream<typename Protocol::socket> sslStream;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SSLIOStreamDevice<Protocol> _d;
|
SSLIOStreamDevice<Protocol> _d;
|
||||||
iostreams::stream< SSLIOStreamDevice<Protocol> > _stream;
|
boost::iostreams::stream< SSLIOStreamDevice<Protocol> > _stream;
|
||||||
};
|
};
|
||||||
|
|
||||||
void ServiceConnection(AcceptedConnection *conn);
|
void ServiceConnection(AcceptedConnection *conn);
|
||||||
|
@ -504,7 +503,7 @@ static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol,
|
||||||
const boost::system::error_code& error)
|
const boost::system::error_code& error)
|
||||||
{
|
{
|
||||||
// Immediately start accepting new connections, except when we're cancelled or our socket is closed.
|
// Immediately start accepting new connections, except when we're cancelled or our socket is closed.
|
||||||
if (error != asio::error::operation_aborted && acceptor->is_open())
|
if (error != boost::asio::error::operation_aborted && acceptor->is_open())
|
||||||
RPCListen(acceptor, context, fUseSSL);
|
RPCListen(acceptor, context, fUseSSL);
|
||||||
|
|
||||||
AcceptedConnectionImpl<ip::tcp>* tcp_conn = dynamic_cast< AcceptedConnectionImpl<ip::tcp>* >(conn.get());
|
AcceptedConnectionImpl<ip::tcp>* tcp_conn = dynamic_cast< AcceptedConnectionImpl<ip::tcp>* >(conn.get());
|
||||||
|
@ -535,7 +534,7 @@ static ip::tcp::endpoint ParseEndpoint(const std::string &strEndpoint, int defau
|
||||||
std::string addr;
|
std::string addr;
|
||||||
int port = defaultPort;
|
int port = defaultPort;
|
||||||
SplitHostPort(strEndpoint, port, addr);
|
SplitHostPort(strEndpoint, port, addr);
|
||||||
return ip::tcp::endpoint(asio::ip::address::from_string(addr), port);
|
return ip::tcp::endpoint(boost::asio::ip::address::from_string(addr), port);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartRPCThreads()
|
void StartRPCThreads()
|
||||||
|
@ -590,7 +589,7 @@ void StartRPCThreads()
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(rpc_io_service == NULL);
|
assert(rpc_io_service == NULL);
|
||||||
rpc_io_service = new asio::io_service();
|
rpc_io_service = new boost::asio::io_service();
|
||||||
rpc_ssl_context = new ssl::context(*rpc_io_service, ssl::context::sslv23);
|
rpc_ssl_context = new ssl::context(*rpc_io_service, ssl::context::sslv23);
|
||||||
|
|
||||||
const bool fUseSSL = GetBoolArg("-rpcssl", false);
|
const bool fUseSSL = GetBoolArg("-rpcssl", false);
|
||||||
|
@ -599,14 +598,14 @@ void StartRPCThreads()
|
||||||
{
|
{
|
||||||
rpc_ssl_context->set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3);
|
rpc_ssl_context->set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3);
|
||||||
|
|
||||||
filesystem::path pathCertFile(GetArg("-rpcsslcertificatechainfile", "server.cert"));
|
boost::filesystem::path pathCertFile(GetArg("-rpcsslcertificatechainfile", "server.cert"));
|
||||||
if (!pathCertFile.is_complete()) pathCertFile = filesystem::path(GetDataDir()) / pathCertFile;
|
if (!pathCertFile.is_complete()) pathCertFile = boost::filesystem::path(GetDataDir()) / pathCertFile;
|
||||||
if (filesystem::exists(pathCertFile)) rpc_ssl_context->use_certificate_chain_file(pathCertFile.string());
|
if (boost::filesystem::exists(pathCertFile)) rpc_ssl_context->use_certificate_chain_file(pathCertFile.string());
|
||||||
else LogPrintf("ThreadRPCServer ERROR: missing server certificate file %s\n", pathCertFile.string());
|
else LogPrintf("ThreadRPCServer ERROR: missing server certificate file %s\n", pathCertFile.string());
|
||||||
|
|
||||||
filesystem::path pathPKFile(GetArg("-rpcsslprivatekeyfile", "server.pem"));
|
boost::filesystem::path pathPKFile(GetArg("-rpcsslprivatekeyfile", "server.pem"));
|
||||||
if (!pathPKFile.is_complete()) pathPKFile = filesystem::path(GetDataDir()) / pathPKFile;
|
if (!pathPKFile.is_complete()) pathPKFile = boost::filesystem::path(GetDataDir()) / pathPKFile;
|
||||||
if (filesystem::exists(pathPKFile)) rpc_ssl_context->use_private_key_file(pathPKFile.string(), ssl::context::pem);
|
if (boost::filesystem::exists(pathPKFile)) rpc_ssl_context->use_private_key_file(pathPKFile.string(), ssl::context::pem);
|
||||||
else LogPrintf("ThreadRPCServer ERROR: missing server private key file %s\n", pathPKFile.string());
|
else LogPrintf("ThreadRPCServer ERROR: missing server private key file %s\n", pathPKFile.string());
|
||||||
|
|
||||||
string strCiphers = GetArg("-rpcsslciphers", "TLSv1.2+HIGH:TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!3DES:@STRENGTH");
|
string strCiphers = GetArg("-rpcsslciphers", "TLSv1.2+HIGH:TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!3DES:@STRENGTH");
|
||||||
|
@ -618,8 +617,8 @@ void StartRPCThreads()
|
||||||
int defaultPort = GetArg("-rpcport", BaseParams().RPCPort());
|
int defaultPort = GetArg("-rpcport", BaseParams().RPCPort());
|
||||||
if (!mapArgs.count("-rpcallowip")) // Default to loopback if not allowing external IPs
|
if (!mapArgs.count("-rpcallowip")) // Default to loopback if not allowing external IPs
|
||||||
{
|
{
|
||||||
vEndpoints.push_back(ip::tcp::endpoint(asio::ip::address_v6::loopback(), defaultPort));
|
vEndpoints.push_back(ip::tcp::endpoint(boost::asio::ip::address_v6::loopback(), defaultPort));
|
||||||
vEndpoints.push_back(ip::tcp::endpoint(asio::ip::address_v4::loopback(), defaultPort));
|
vEndpoints.push_back(ip::tcp::endpoint(boost::asio::ip::address_v4::loopback(), defaultPort));
|
||||||
if (mapArgs.count("-rpcbind"))
|
if (mapArgs.count("-rpcbind"))
|
||||||
{
|
{
|
||||||
LogPrintf("WARNING: option -rpcbind was ignored because -rpcallowip was not specified, refusing to allow everyone to connect\n");
|
LogPrintf("WARNING: option -rpcbind was ignored because -rpcallowip was not specified, refusing to allow everyone to connect\n");
|
||||||
|
@ -641,8 +640,8 @@ void StartRPCThreads()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else { // No specific bind address specified, bind to any
|
} else { // No specific bind address specified, bind to any
|
||||||
vEndpoints.push_back(ip::tcp::endpoint(asio::ip::address_v6::any(), defaultPort));
|
vEndpoints.push_back(ip::tcp::endpoint(boost::asio::ip::address_v6::any(), defaultPort));
|
||||||
vEndpoints.push_back(ip::tcp::endpoint(asio::ip::address_v4::any(), defaultPort));
|
vEndpoints.push_back(ip::tcp::endpoint(boost::asio::ip::address_v4::any(), defaultPort));
|
||||||
// Prefer making the socket dual IPv6/IPv4 instead of binding
|
// Prefer making the socket dual IPv6/IPv4 instead of binding
|
||||||
// to both addresses seperately.
|
// to both addresses seperately.
|
||||||
bBindAny = true;
|
bBindAny = true;
|
||||||
|
@ -654,7 +653,7 @@ void StartRPCThreads()
|
||||||
BOOST_FOREACH(const ip::tcp::endpoint &endpoint, vEndpoints)
|
BOOST_FOREACH(const ip::tcp::endpoint &endpoint, vEndpoints)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
asio::ip::address bindAddress = endpoint.address();
|
boost::asio::ip::address bindAddress = endpoint.address();
|
||||||
straddress = bindAddress.to_string();
|
straddress = bindAddress.to_string();
|
||||||
LogPrintf("Binding RPC on address %s port %i (IPv4+IPv6 bind any: %i)\n", straddress, endpoint.port(), bBindAny);
|
LogPrintf("Binding RPC on address %s port %i (IPv4+IPv6 bind any: %i)\n", straddress, endpoint.port(), bBindAny);
|
||||||
boost::system::error_code v6_only_error;
|
boost::system::error_code v6_only_error;
|
||||||
|
@ -665,7 +664,7 @@ void StartRPCThreads()
|
||||||
|
|
||||||
// Try making the socket dual IPv6/IPv4 when listening on the IPv6 "any" address
|
// Try making the socket dual IPv6/IPv4 when listening on the IPv6 "any" address
|
||||||
acceptor->set_option(boost::asio::ip::v6_only(
|
acceptor->set_option(boost::asio::ip::v6_only(
|
||||||
!bBindAny || bindAddress != asio::ip::address_v6::any()), v6_only_error);
|
!bBindAny || bindAddress != boost::asio::ip::address_v6::any()), v6_only_error);
|
||||||
|
|
||||||
acceptor->bind(endpoint);
|
acceptor->bind(endpoint);
|
||||||
acceptor->listen(socket_base::max_connections);
|
acceptor->listen(socket_base::max_connections);
|
||||||
|
@ -675,7 +674,7 @@ void StartRPCThreads()
|
||||||
fListening = true;
|
fListening = true;
|
||||||
rpc_acceptors.push_back(acceptor);
|
rpc_acceptors.push_back(acceptor);
|
||||||
// If dual IPv6/IPv4 bind successful, skip binding to IPv4 separately
|
// If dual IPv6/IPv4 bind successful, skip binding to IPv4 separately
|
||||||
if(bBindAny && bindAddress == asio::ip::address_v6::any() && !v6_only_error)
|
if(bBindAny && bindAddress == boost::asio::ip::address_v6::any() && !v6_only_error)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
catch (const boost::system::system_error& e)
|
catch (const boost::system::system_error& e)
|
||||||
|
@ -693,7 +692,7 @@ void StartRPCThreads()
|
||||||
|
|
||||||
rpc_worker_group = new boost::thread_group();
|
rpc_worker_group = new boost::thread_group();
|
||||||
for (int i = 0; i < GetArg("-rpcthreads", 4); i++)
|
for (int i = 0; i < GetArg("-rpcthreads", 4); i++)
|
||||||
rpc_worker_group->create_thread(boost::bind(&asio::io_service::run, rpc_io_service));
|
rpc_worker_group->create_thread(boost::bind(&boost::asio::io_service::run, rpc_io_service));
|
||||||
fRPCRunning = true;
|
fRPCRunning = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -701,12 +700,12 @@ void StartDummyRPCThread()
|
||||||
{
|
{
|
||||||
if(rpc_io_service == NULL)
|
if(rpc_io_service == NULL)
|
||||||
{
|
{
|
||||||
rpc_io_service = new asio::io_service();
|
rpc_io_service = new boost::asio::io_service();
|
||||||
/* Create dummy "work" to keep the thread from exiting when no timeouts active,
|
/* Create dummy "work" to keep the thread from exiting when no timeouts active,
|
||||||
* see http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/reference/io_service.html#boost_asio.reference.io_service.stopping_the_io_service_from_running_out_of_work */
|
* see http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/reference/io_service.html#boost_asio.reference.io_service.stopping_the_io_service_from_running_out_of_work */
|
||||||
rpc_dummy_work = new asio::io_service::work(*rpc_io_service);
|
rpc_dummy_work = new boost::asio::io_service::work(*rpc_io_service);
|
||||||
rpc_worker_group = new boost::thread_group();
|
rpc_worker_group = new boost::thread_group();
|
||||||
rpc_worker_group->create_thread(boost::bind(&asio::io_service::run, rpc_io_service));
|
rpc_worker_group->create_thread(boost::bind(&boost::asio::io_service::run, rpc_io_service));
|
||||||
fRPCRunning = true;
|
fRPCRunning = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -719,7 +718,7 @@ void StopRPCThreads()
|
||||||
|
|
||||||
// First, cancel all timers and acceptors
|
// First, cancel all timers and acceptors
|
||||||
// This is not done automatically by ->stop(), and in some cases the destructor of
|
// This is not done automatically by ->stop(), and in some cases the destructor of
|
||||||
// asio::io_service can hang if this is skipped.
|
// boost::asio::io_service can hang if this is skipped.
|
||||||
boost::system::error_code ec;
|
boost::system::error_code ec;
|
||||||
BOOST_FOREACH(const boost::shared_ptr<ip::tcp::acceptor> &acceptor, rpc_acceptors)
|
BOOST_FOREACH(const boost::shared_ptr<ip::tcp::acceptor> &acceptor, rpc_acceptors)
|
||||||
{
|
{
|
||||||
|
@ -787,7 +786,7 @@ void RPCRunLater(const std::string& name, boost::function<void(void)> func, int6
|
||||||
deadlineTimers.insert(make_pair(name,
|
deadlineTimers.insert(make_pair(name,
|
||||||
boost::shared_ptr<deadline_timer>(new deadline_timer(*rpc_io_service))));
|
boost::shared_ptr<deadline_timer>(new deadline_timer(*rpc_io_service))));
|
||||||
}
|
}
|
||||||
deadlineTimers[name]->expires_from_now(posix_time::seconds(nSeconds));
|
deadlineTimers[name]->expires_from_now(boost::posix_time::seconds(nSeconds));
|
||||||
deadlineTimers[name]->async_wait(boost::bind(RPCRunHandler, _1, func));
|
deadlineTimers[name]->async_wait(boost::bind(RPCRunHandler, _1, func));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "json/json_spirit_value.h"
|
#include "json/json_spirit_value.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost;
|
|
||||||
using namespace boost::assign;
|
using namespace boost::assign;
|
||||||
using namespace json_spirit;
|
using namespace json_spirit;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <boost/scoped_ptr.hpp>
|
#include <boost/scoped_ptr.hpp>
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
static uint64_t nAccountingEntryNumber = 0;
|
static uint64_t nAccountingEntryNumber = 0;
|
||||||
|
@ -865,20 +864,20 @@ bool BackupWallet(const CWallet& wallet, const string& strDest)
|
||||||
bitdb.mapFileUseCount.erase(wallet.strWalletFile);
|
bitdb.mapFileUseCount.erase(wallet.strWalletFile);
|
||||||
|
|
||||||
// Copy wallet.dat
|
// Copy wallet.dat
|
||||||
filesystem::path pathSrc = GetDataDir() / wallet.strWalletFile;
|
boost::filesystem::path pathSrc = GetDataDir() / wallet.strWalletFile;
|
||||||
filesystem::path pathDest(strDest);
|
boost::filesystem::path pathDest(strDest);
|
||||||
if (filesystem::is_directory(pathDest))
|
if (boost::filesystem::is_directory(pathDest))
|
||||||
pathDest /= wallet.strWalletFile;
|
pathDest /= wallet.strWalletFile;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
#if BOOST_VERSION >= 104000
|
#if BOOST_VERSION >= 104000
|
||||||
filesystem::copy_file(pathSrc, pathDest, filesystem::copy_option::overwrite_if_exists);
|
boost::filesystem::copy_file(pathSrc, pathDest, boost::filesystem::copy_option::overwrite_if_exists);
|
||||||
#else
|
#else
|
||||||
filesystem::copy_file(pathSrc, pathDest);
|
boost::filesystem::copy_file(pathSrc, pathDest);
|
||||||
#endif
|
#endif
|
||||||
LogPrintf("copied wallet.dat to %s\n", pathDest.string());
|
LogPrintf("copied wallet.dat to %s\n", pathDest.string());
|
||||||
return true;
|
return true;
|
||||||
} catch (const filesystem::filesystem_error& e) {
|
} catch (const boost::filesystem::filesystem_error& e) {
|
||||||
LogPrintf("error copying wallet.dat to %s - %s\n", pathDest.string(), e.what());
|
LogPrintf("error copying wallet.dat to %s - %s\n", pathDest.string(), e.what());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue