Cleanup TCP throttling code (performance) + move connection checks

This commit is contained in:
Lee *!* Clagett 2024-08-27 14:07:52 -04:00
parent 893916ad09
commit 7e766e13c3
7 changed files with 93 additions and 34 deletions

View file

@ -76,6 +76,13 @@ namespace net_utils
protected:
virtual ~i_connection_filter(){}
};
struct i_connection_limit
{
virtual bool is_host_limit(const epee::net_utils::network_address &address)=0;
protected:
virtual ~i_connection_limit(){}
};
/************************************************************************/
@ -260,10 +267,11 @@ namespace net_utils
struct shared_state : connection_basic_shared_state, t_protocol_handler::config_type
{
shared_state()
: connection_basic_shared_state(), t_protocol_handler::config_type(), pfilter(nullptr), stop_signal_sent(false)
: connection_basic_shared_state(), t_protocol_handler::config_type(), pfilter(nullptr), plimit(nullptr), stop_signal_sent(false)
{}
i_connection_filter* pfilter;
i_connection_limit* plimit;
bool stop_signal_sent;
};
@ -369,6 +377,7 @@ namespace net_utils
size_t get_threads_count(){return m_threads_count;}
void set_connection_filter(i_connection_filter* pfilter);
void set_connection_limit(i_connection_limit* plimit);
void set_default_remote(epee::net_utils::network_address remote)
{