print limits when running limit commands with no arguments

It's more user friendly that an error message saying the command
does not exist.
This commit is contained in:
moneromooo-monero 2015-05-17 13:13:02 +01:00
parent 2dc1cd9ae6
commit d8ee0a95c7
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
5 changed files with 60 additions and 3 deletions

View File

@ -251,7 +251,10 @@ bool t_command_parser_executor::print_status(const std::vector<std::string>& arg
bool t_command_parser_executor::set_limit(const std::vector<std::string>& args)
{
if(args.size()!=1) return false;
if(args.size()>1) return false;
if(args.size()==0) {
return m_executor.get_limit();
}
int limit;
try {
limit = std::stoi(args[0]);
@ -267,7 +270,10 @@ bool t_command_parser_executor::set_limit(const std::vector<std::string>& args)
bool t_command_parser_executor::set_limit_up(const std::vector<std::string>& args)
{
if(args.size()!=1) return false;
if(args.size()>1) return false;
if(args.size()==0) {
return m_executor.get_limit_up();
}
int limit;
try {
limit = std::stoi(args[0]);
@ -283,7 +289,10 @@ bool t_command_parser_executor::set_limit_up(const std::vector<std::string>& arg
bool t_command_parser_executor::set_limit_down(const std::vector<std::string>& args)
{
if(args.size()!=1) return false;
if(args.size()>1) return false;
if(args.size()==0) {
return m_executor.get_limit_down();
}
int limit;
try {
limit = std::stoi(args[0]);

View File

@ -737,6 +737,15 @@ bool t_rpc_command_executor::print_status()
return true;
}
bool t_rpc_command_executor::get_limit()
{
int limit_down = epee::net_utils::connection_basic::get_rate_down_limit( );
int limit_up = epee::net_utils::connection_basic::get_rate_up_limit( );
std::cout << "limit-down is " << limit_down/1024 << " kB/s" << std::endl;
std::cout << "limit-up is " << limit_up/1024 << " kB/s" << std::endl;
return true;
}
bool t_rpc_command_executor::set_limit(int limit)
{
epee::net_utils::connection_basic::set_rate_down_limit( limit );
@ -746,6 +755,13 @@ bool t_rpc_command_executor::set_limit(int limit)
return true;
}
bool t_rpc_command_executor::get_limit_up()
{
int limit_up = epee::net_utils::connection_basic::get_rate_up_limit( );
std::cout << "limit-up is " << limit_up/1024 << " kB/s" << std::endl;
return true;
}
bool t_rpc_command_executor::set_limit_up(int limit)
{
epee::net_utils::connection_basic::set_rate_up_limit( limit );
@ -753,6 +769,13 @@ bool t_rpc_command_executor::set_limit_up(int limit)
return true;
}
bool t_rpc_command_executor::get_limit_down()
{
int limit_down = epee::net_utils::connection_basic::get_rate_down_limit( );
std::cout << "limit-down is " << limit_down/1024 << " kB/s" << std::endl;
return true;
}
bool t_rpc_command_executor::set_limit_down(int limit)
{
epee::net_utils::connection_basic::set_rate_down_limit( limit );

View File

@ -99,6 +99,12 @@ public:
bool print_status();
bool get_limit();
bool get_limit_up();
bool get_limit_down();
bool set_limit(int limit);
bool set_limit_up(int limit);

View File

@ -199,6 +199,23 @@ void connection_basic::set_rate_down_limit(uint64_t limit) {
save_limit_to_file(limit);
}
uint64_t connection_basic::get_rate_up_limit() {
uint64_t limit;
{
CRITICAL_REGION_LOCAL( network_throttle_manager::m_lock_get_global_throttle_out );
limit = network_throttle_manager::get_global_throttle_out().get_terget_speed();
}
return limit;
}
uint64_t connection_basic::get_rate_down_limit() {
uint64_t limit;
{
CRITICAL_REGION_LOCAL( network_throttle_manager::m_lock_get_global_throttle_in );
limit = network_throttle_manager::get_global_throttle_in().get_terget_speed();
}
return limit;
}
void connection_basic::save_limit_to_file(int limit) {
// saving limit to file

View File

@ -119,6 +119,8 @@ class connection_basic { // not-templated base class for rapid developmet of som
static void set_rate_up_limit(uint64_t limit);
static void set_rate_down_limit(uint64_t limit);
static uint64_t get_rate_up_limit();
static uint64_t get_rate_down_limit();
// config misc
static void set_tos_flag(int tos); // ToS / QoS flag