From 658b6690a36f6f0b3b06dca5b85021b2b344c059 Mon Sep 17 00:00:00 2001 From: Zachary Michaels Date: Mon, 8 Sep 2014 13:07:15 -0400 Subject: [PATCH] Separate rpc port for testnet --- src/daemon/daemon.cpp | 2 +- src/rpc/core_rpc_server.cpp | 28 +++++++++++++++++++++++----- src/rpc/core_rpc_server.h | 10 ++++++++-- src/simplewallet/simplewallet.cpp | 10 +++++++--- src/wallet/wallet2.cpp | 6 +++++- 5 files changed, 44 insertions(+), 12 deletions(-) diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp index 1041aa43..04f6db4f 100644 --- a/src/daemon/daemon.cpp +++ b/src/daemon/daemon.cpp @@ -220,7 +220,7 @@ int main(int argc, char* argv[]) LOG_PRINT_L0("Protocol initialized OK"); LOG_PRINT_L0("Initializing core RPC server..."); - res = rpc_server.init(vm); + res = rpc_server.init(vm, testnet_mode); CHECK_AND_ASSERT_MES(res, 1, "Failed to initialize core RPC server."); LOG_PRINT_GREEN("Core RPC server initialized OK on port: " << rpc_server.get_binded_port(), LOG_LEVEL_0); diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index e99f4492..197e4ff8 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -46,7 +46,16 @@ namespace cryptonote namespace { const command_line::arg_descriptor arg_rpc_bind_ip = {"rpc-bind-ip", "", "127.0.0.1"}; - const command_line::arg_descriptor arg_rpc_bind_port = {"rpc-bind-port", "", std::to_string(config::RPC_DEFAULT_PORT)}; + const command_line::arg_descriptor arg_rpc_bind_port = { + "rpc-bind-port" + , "" + , std::to_string(config::RPC_DEFAULT_PORT) + }; + const command_line::arg_descriptor arg_testnet_rpc_bind_port = { + "testnet-rpc-bind-port" + , "" + , std::to_string(config::testnet::RPC_DEFAULT_PORT) + }; } //----------------------------------------------------------------------------------- @@ -54,22 +63,31 @@ namespace cryptonote { command_line::add_arg(desc, arg_rpc_bind_ip); command_line::add_arg(desc, arg_rpc_bind_port); + command_line::add_arg(desc, arg_testnet_rpc_bind_port); } //------------------------------------------------------------------------------------------------------------------------------ core_rpc_server::core_rpc_server(core& cr, nodetool::node_server >& p2p):m_core(cr), m_p2p(p2p) {} //------------------------------------------------------------------------------------------------------------------------------ - bool core_rpc_server::handle_command_line(const boost::program_options::variables_map& vm) + bool core_rpc_server::handle_command_line( + const boost::program_options::variables_map& vm + , bool testnet + ) { + auto p2p_bind_arg = testnet ? arg_testnet_rpc_bind_port : arg_rpc_bind_port; + m_bind_ip = command_line::get_arg(vm, arg_rpc_bind_ip); - m_port = command_line::get_arg(vm, arg_rpc_bind_port); + m_port = command_line::get_arg(vm, p2p_bind_arg); return true; } //------------------------------------------------------------------------------------------------------------------------------ - bool core_rpc_server::init(const boost::program_options::variables_map& vm) + bool core_rpc_server::init( + const boost::program_options::variables_map& vm + , bool testnet + ) { m_net_server.set_threads_prefix("RPC"); - bool r = handle_command_line(vm); + bool r = handle_command_line(vm, testnet); CHECK_AND_ASSERT_MES(r, false, "Failed to process command line in core_rpc_server"); return epee::http_server_impl_base::init(m_port, m_bind_ip); } diff --git a/src/rpc/core_rpc_server.h b/src/rpc/core_rpc_server.h index 2e3f553c..3f3d23f5 100644 --- a/src/rpc/core_rpc_server.h +++ b/src/rpc/core_rpc_server.h @@ -52,7 +52,10 @@ namespace cryptonote core_rpc_server(core& cr, nodetool::node_server >& p2p); static void init_options(boost::program_options::options_description& desc); - bool init(const boost::program_options::variables_map& vm); + bool init( + const boost::program_options::variables_map& vm + , bool testnet + ); private: CHAIN_HTTP_TO_MAP2(connection_context); //forward http requests to uri map @@ -105,7 +108,10 @@ namespace cryptonote bool on_get_connections(const COMMAND_RPC_GET_CONNECTIONS::request& req, COMMAND_RPC_GET_CONNECTIONS::response& res, epee::json_rpc::error& error_resp, connection_context& cntx); bool on_get_info_json(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res, epee::json_rpc::error& error_resp, connection_context& cntx); //----------------------- - bool handle_command_line(const boost::program_options::variables_map& vm); + bool handle_command_line( + const boost::program_options::variables_map& vm + , bool testnet + ); bool check_core_busy(); bool check_core_ready(); diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 45bc6f84..6c97dc80 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -328,15 +328,19 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm) if(!ask_wallet_create_if_needed()) return false; } + bool testnet = command_line::get_arg(vm, arg_testnet); + if (m_daemon_host.empty()) m_daemon_host = "localhost"; + if (!m_daemon_port) - m_daemon_port = config::RPC_DEFAULT_PORT; + { + m_daemon_port = testnet ? config::testnet::RPC_DEFAULT_PORT : config::RPC_DEFAULT_PORT; + } + if (m_daemon_address.empty()) m_daemon_address = std::string("http://") + m_daemon_host + ":" + std::to_string(m_daemon_port); - bool testnet = command_line::get_arg(vm, arg_testnet); - tools::password_container pwd_container; if (command_line::has_arg(vm, arg_password)) { diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index bbf5bab6..b8b72842 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -542,8 +542,12 @@ bool wallet2::check_connection() net_utils::http::url_content u; net_utils::parse_url(m_daemon_address, u); + if(!u.port) - u.port = config::RPC_DEFAULT_PORT; + { + u.port = m_testnet ? config::testnet::RPC_DEFAULT_PORT : config::RPC_DEFAULT_PORT; + } + return m_http_client.connect(u.host, std::to_string(u.port), WALLET_RCP_CONNECTION_TIMEOUT); } //----------------------------------------------------------------------------------------------------