some fixes

This commit is contained in:
Antonio Juarez 2014-03-20 11:46:11 +00:00
parent 296ae46ed8
commit 8efa1313f3
67 changed files with 1523 additions and 757 deletions

View file

@ -38,6 +38,7 @@ namespace
const command_line::arg_descriptor<bool> arg_os_version = {"os-version", ""};
const command_line::arg_descriptor<std::string> arg_log_file = {"log-file", "", ""};
const command_line::arg_descriptor<int> arg_log_level = {"log-level", "", LOG_LEVEL_0};
const command_line::arg_descriptor<bool> arg_console = {"no-console", "Disable daemon console commands"};
}
bool command_line_preprocessor(const boost::program_options::variables_map& vm);
@ -67,6 +68,8 @@ int main(int argc, char* argv[])
command_line::add_arg(desc_cmd_sett, arg_log_file);
command_line::add_arg(desc_cmd_sett, arg_log_level);
command_line::add_arg(desc_cmd_sett, arg_console);
cryptonote::core::init_options(desc_cmd_sett);
cryptonote::core_rpc_server::init_options(desc_cmd_sett);
@ -118,6 +121,7 @@ int main(int argc, char* argv[])
log_dir = log_file_path.has_parent_path() ? log_file_path.parent_path().string() : log_space::log_singletone::get_default_log_folder();
log_space::log_singletone::add_logger(LOGGER_FILE, log_file_path.filename().string().c_str(), log_dir.c_str());
LOG_PRINT_L0(CRYPTONOTE_NAME << " v" << PROJECT_VERSION_LONG);
if (command_line_preprocessor(vm))
{
@ -162,15 +166,23 @@ int main(int argc, char* argv[])
res = ccore.init(vm);
CHECK_AND_ASSERT_MES(res, 1, "Failed to initialize core");
LOG_PRINT_L0("Core initialized OK");
// start components
dch.start_handling();
if(!command_line::has_arg(vm, arg_console))
{
dch.start_handling();
}
LOG_PRINT_L0("Starting core rpc server...");
res = rpc_server.run(2, false);
CHECK_AND_ASSERT_MES(res, 1, "Failed to initialize core rpc server.");
LOG_PRINT_L0("Core rpc server started ok");
tools::signal_handler::install([&dch, &p2psrv] {
dch.stop_handling();
p2psrv.send_stop_signal();
});
LOG_PRINT_L0("Starting p2p net loop...");
p2psrv.run();
LOG_PRINT_L0("p2p net loop stopped");
@ -205,7 +217,7 @@ bool command_line_preprocessor(const boost::program_options::variables_map& vm)
bool exit = false;
if (command_line::get_arg(vm, command_line::arg_version))
{
std::cout << CRYPTONOTE_NAME << PROJECT_VERSION_LONG << ENDL;
std::cout << CRYPTONOTE_NAME << " v" << PROJECT_VERSION_LONG << ENDL;
exit = true;
}
if (command_line::get_arg(vm, arg_os_version))

View file

@ -38,10 +38,15 @@ public:
bool start_handling()
{
m_cmd_binder.start_handling(&m_srv, "");
m_cmd_binder.start_handling(&m_srv, "", "");
return true;
}
void stop_handling()
{
m_cmd_binder.stop_handling();
}
private:
epee::srv_console_handlers_binder<nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core> > > m_cmd_binder;
@ -77,7 +82,13 @@ private:
//--------------------------------------------------------------------------------
bool show_hr(const std::vector<std::string>& args)
{
m_srv.get_payload_object().get_core().get_miner().do_print_hashrate(true);
if(!m_srv.get_payload_object().get_core().get_miner().is_mining())
{
std::cout << "Mining is not started. You need start mining before you can see hash rate." << ENDL;
} else
{
m_srv.get_payload_object().get_core().get_miner().do_print_hashrate(true);
}
return true;
}
//--------------------------------------------------------------------------------
@ -100,7 +111,7 @@ private:
//--------------------------------------------------------------------------------
bool print_cn(const std::vector<std::string>& args)
{
m_srv.log_connections();
m_srv.get_payload_object().log_connections();
return true;
}
//--------------------------------------------------------------------------------
@ -263,7 +274,7 @@ private:
{
if(!args.size())
{
std::cout << "target account address for mining is not set" << std::endl;
std::cout << "Please, specify wallet address to mine for: start_mining <addr> [threads=1]" << std::endl;
return true;
}
@ -273,10 +284,11 @@ private:
std::cout << "target account address has wrong format" << std::endl;
return true;
}
size_t threads_count = 1;
size_t threads_count = 1;
if(args.size() > 1)
{
string_tools::get_xtype_from_string(threads_count, args[1]);
bool ok = string_tools::get_xtype_from_string(threads_count, args[1]);
threads_count = (ok && 0 < threads_count) ? threads_count : 1;
}
m_srv.get_payload_object().get_core().get_miner().start(adr, threads_count);