mirror of
https://git.wownero.com/wownero/wownero.git
synced 2024-08-15 01:03:23 +00:00
Merge pull request #2920
bd5cce07
network_throttle: fix ineffective locking (moneromooo-monero)e0a61299
network_throttle: remove unused xxx static member (moneromooo-monero)24f584d9
cryptonote_core: remove unused functions with off by one bugs (moneromooo-monero)b1634aa3
blockchain: don't leave dangling pointers in this (moneromooo-monero)8e60b81c
cryptonote_core: fix db leak on error (moneromooo-monero)213e326c
abstract_tcp_server2: log init_server errors as fatal (moneromooo-monero)b51dc566
use const refs in for loops for non tiny types (moneromooo-monero)f0568ca6
net_parse_helpers: fix regex error checking (moneromooo-monero)b49ddc76
check accessing an element past the end of a container (moneromooo-monero)2305bf26
check return value for generate_key_derivation and derive_public_key (moneromooo-monero)a4240d9f
catch const exceptions (moneromooo-monero)45a1c4c0
add empty container sanity checks when using front() and back() (moneromooo-monero)56fa6ce1
tests: fix a buffer overread in a unit test (moneromooo-monero)b4524892
rpc: guard against json parsing a non object (moneromooo-monero)c2ed8618
easylogging++: avoid buffer underflow (moneromooo-monero)187a6ab2
epee: trap failure to parse URI from request (moneromooo-monero)061789b5
checkpoints: trap failure to load JSON checkpoints (moneromooo-monero)ba2fefb9
checkpoints: pass std::string by const ref, not const value (moneromooo-monero)38c8f4e0
mlog: terminate a string at last char, just in case (moneromooo-monero)d753d716
fix a few leaks by throwing objects, not newed pointers to objects (moneromooo-monero)fe568db8
p2p: use size_t for arbitrary counters instead of uint8_t (moneromooo-monero)46d6fa35
cryptonote_protocol: sanity check chain hashes from peer (moneromooo-monero)25584f86
cryptonote_protocol: print peer versions when unexpected (moneromooo-monero)490a5d41
rpc: do not try to use an invalid txid in relay_tx (moneromooo-monero)
This commit is contained in:
commit
2b00899bb2
39 changed files with 197 additions and 191 deletions
|
@ -305,7 +305,7 @@ namespace net_utils
|
|||
m_connections.back().powner = this;
|
||||
m_connections.back().m_self_it = --m_connections.end();
|
||||
m_connections.back().m_context.m_remote_address = remote_address;
|
||||
m_connections.back().m_htread = threads_helper::create_thread(ConnectionHandlerProc, &m_connections.back());
|
||||
m_connections.back().m_htread = threads_helper::create_thread(ConnectionHandlerProc, &m_connections.back()); // ugh, seems very risky
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -735,7 +735,17 @@ PRAGMA_WARNING_DISABLE_VS(4355)
|
|||
boost::asio::placeholders::error));
|
||||
|
||||
return true;
|
||||
CATCH_ENTRY_L0("boosted_tcp_server<t_protocol_handler>::init_server", false);
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
MFATAL("Error starting server: " << e.what());
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
MFATAL("Error starting server");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
PUSH_WARNINGS
|
||||
|
|
|
@ -345,7 +345,12 @@ namespace net_utils
|
|||
{
|
||||
analize_http_method(result, m_query_info.m_http_method, m_query_info.m_http_ver_hi, m_query_info.m_http_ver_hi);
|
||||
m_query_info.m_URI = result[10];
|
||||
parse_uri(m_query_info.m_URI, m_query_info.m_uri_content);
|
||||
if (!parse_uri(m_query_info.m_URI, m_query_info.m_uri_content))
|
||||
{
|
||||
m_state = http_state_error;
|
||||
MERROR("Failed to parse URI: m_query_info.m_URI");
|
||||
return false;
|
||||
}
|
||||
m_query_info.m_http_method_str = result[2];
|
||||
m_query_info.m_full_request_str = result[0];
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ namespace net_utils
|
|||
STATIC_REGEXP_EXPR_1(rexp_match_uri, "^([^?#]*)(\\?([^#]*))?(#(.*))?", boost::regex::icase | boost::regex::normal);
|
||||
|
||||
boost::smatch result;
|
||||
if(!boost::regex_search(uri, result, rexp_match_uri, boost::match_default) && result[0].matched)
|
||||
if(!(boost::regex_search(uri, result, rexp_match_uri, boost::match_default) && result[0].matched))
|
||||
{
|
||||
LOG_PRINT_L1("[PARSE URI] regex not matched for uri: " << uri);
|
||||
content.m_path = uri;
|
||||
|
@ -139,7 +139,7 @@ namespace net_utils
|
|||
// 12 34 5 6 7
|
||||
content.port = 0;
|
||||
boost::smatch result;
|
||||
if(!boost::regex_search(url_str, result, rexp_match_uri, boost::match_default) && result[0].matched)
|
||||
if(!(boost::regex_search(url_str, result, rexp_match_uri, boost::match_default) && result[0].matched))
|
||||
{
|
||||
LOG_PRINT_L1("[PARSE URI] regex not matched for uri: " << rexp_match_uri);
|
||||
//content.m_path = uri;
|
||||
|
|
|
@ -121,8 +121,6 @@ class network_throttle_manager {
|
|||
friend class connection_basic; // FRIEND - to directly access global throttle-s. !! REMEMBER TO USE LOCKS!
|
||||
friend class connection_basic_pimpl; // ditto
|
||||
|
||||
static int xxx;
|
||||
|
||||
public:
|
||||
static i_network_throttle & get_global_throttle_in(); ///< singleton ; for friend class ; caller MUST use proper locks! like m_lock_get_global_throttle_in
|
||||
static i_network_throttle & get_global_throttle_inreq(); ///< ditto ; use lock ... use m_lock_get_global_throttle_inreq obviously
|
||||
|
|
|
@ -161,7 +161,7 @@ DISABLE_GCC_WARNING(maybe-uninitialized)
|
|||
val = boost::lexical_cast<XType>(str_id);
|
||||
return true;
|
||||
}
|
||||
catch(std::exception& /*e*/)
|
||||
catch(const std::exception& /*e*/)
|
||||
{
|
||||
//const char* pmsg = e.what();
|
||||
return false;
|
||||
|
|
|
@ -59,6 +59,7 @@ static std::string generate_log_filename(const char *base)
|
|||
strcpy(tmp, "unknown");
|
||||
else
|
||||
strftime(tmp, sizeof(tmp), "%Y-%m-%d-%H-%M-%S", &tm);
|
||||
tmp[sizeof(tmp) - 1] = 0;
|
||||
filename += "-";
|
||||
filename += tmp;
|
||||
return filename;
|
||||
|
|
|
@ -231,8 +231,10 @@ network_time_seconds network_throttle::get_sleep_time_after_tick(size_t packet_s
|
|||
}
|
||||
|
||||
void network_throttle::logger_handle_net(const std::string &filename, double time, size_t size) {
|
||||
boost::mutex mutex;
|
||||
mutex.lock(); {
|
||||
static boost::mutex mutex;
|
||||
|
||||
boost::lock_guard<boost::mutex> lock(mutex);
|
||||
{
|
||||
std::fstream file;
|
||||
file.open(filename.c_str(), std::ios::app | std::ios::out );
|
||||
file.precision(6);
|
||||
|
@ -240,7 +242,7 @@ void network_throttle::logger_handle_net(const std::string &filename, double tim
|
|||
_warn("Can't open file " << filename);
|
||||
file << static_cast<int>(time) << " " << static_cast<double>(size/1024) << "\n";
|
||||
file.close();
|
||||
} mutex.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
// fine tune this to decide about sending speed:
|
||||
|
|
|
@ -71,9 +71,6 @@ boost::mutex network_throttle_manager::m_lock_get_global_throttle_in;
|
|||
boost::mutex network_throttle_manager::m_lock_get_global_throttle_inreq;
|
||||
boost::mutex network_throttle_manager::m_lock_get_global_throttle_out;
|
||||
|
||||
int network_throttle_manager::xxx;
|
||||
|
||||
|
||||
// ================================================================================================
|
||||
// methods:
|
||||
i_network_throttle & network_throttle_manager::get_global_throttle_in() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue