From f5e5abe37f9830bf200181e075b6e74dc7e8f85e Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Fri, 15 Nov 2019 04:29:45 +0000 Subject: [PATCH] Diff-minimisation --- src/net.cpp | 5 ++--- src/net_permissions.h | 4 ++++ src/test/netbase_tests.cpp | 10 +++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 6c60c234bf..110c5756d6 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -2034,14 +2034,13 @@ void CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFai return; CNode* pnode = ConnectNode(addrConnect, pszDest, fCountFailure, conn_type); + if (!pnode) return; - if (grantOutbound) grantOutbound->MoveTo(pnode->grantOutbound); - ServiceFlags nodeServices = nLocalServices; - m_msgproc->InitializeNode(*pnode, nodeServices); + m_msgproc->InitializeNode(*pnode, nLocalServices); { LOCK(m_nodes_mutex); m_nodes.push_back(pnode); diff --git a/src/net_permissions.h b/src/net_permissions.h index 50dd3e787a..91ce49af6a 100644 --- a/src/net_permissions.h +++ b/src/net_permissions.h @@ -90,6 +90,10 @@ class NetWhitelistPermissions : public NetPermissions { public: static bool TryParse(const std::string& str, NetWhitelistPermissions& output, ConnectionDirection& output_connection_direction, bilingual_str& error); + static inline bool TryParse(const std::string& str, NetWhitelistPermissions& output, bilingual_str& error) { + ConnectionDirection connection_direction_ignored; + return TryParse(str, output, connection_direction_ignored, error); + } CSubNet m_subnet; }; diff --git a/src/test/netbase_tests.cpp b/src/test/netbase_tests.cpp index 690824755c..fabe965417 100644 --- a/src/test/netbase_tests.cpp +++ b/src/test/netbase_tests.cpp @@ -376,7 +376,6 @@ BOOST_AUTO_TEST_CASE(netpermissions_test) bilingual_str error; NetWhitebindPermissions whitebindPermissions; NetWhitelistPermissions whitelistPermissions; - ConnectionDirection connection_direction; // Detect invalid white bind BOOST_CHECK(!NetWhitebindPermissions::TryParse("", whitebindPermissions, error)); @@ -454,19 +453,20 @@ BOOST_AUTO_TEST_CASE(netpermissions_test) BOOST_CHECK(error.original.find("Invalid P2P permission") != std::string::npos); // Check netmask error - BOOST_CHECK(!NetWhitelistPermissions::TryParse("bloom,forcerelay,noban@1.2.3.4:32", whitelistPermissions, connection_direction, error)); + BOOST_CHECK(!NetWhitelistPermissions::TryParse("bloom,forcerelay,noban@1.2.3.4:32", whitelistPermissions, error)); BOOST_CHECK(error.original.find("Invalid netmask specified in -whitelist") != std::string::npos); // Happy path for whitelist parsing - BOOST_CHECK(NetWhitelistPermissions::TryParse("noban@1.2.3.4", whitelistPermissions, connection_direction, error)); + BOOST_CHECK(NetWhitelistPermissions::TryParse("noban@1.2.3.4", whitelistPermissions, error)); BOOST_CHECK_EQUAL(whitelistPermissions.m_flags, NetPermissionFlags::NoBan); BOOST_CHECK(NetPermissions::HasFlag(whitelistPermissions.m_flags, NetPermissionFlags::NoBan)); - BOOST_CHECK(NetWhitelistPermissions::TryParse("bloom,forcerelay,noban,relay@1.2.3.4/32", whitelistPermissions, connection_direction, error)); + BOOST_CHECK(NetWhitelistPermissions::TryParse("bloom,forcerelay,noban,relay@1.2.3.4/32", whitelistPermissions, error)); BOOST_CHECK_EQUAL(whitelistPermissions.m_flags, NetPermissionFlags::BloomFilter | NetPermissionFlags::ForceRelay | NetPermissionFlags::NoBan | NetPermissionFlags::Relay); BOOST_CHECK(error.empty()); BOOST_CHECK_EQUAL(whitelistPermissions.m_subnet.ToString(), "1.2.3.4/32"); - BOOST_CHECK(NetWhitelistPermissions::TryParse("bloom,forcerelay,noban,relay,mempool@1.2.3.4/32", whitelistPermissions, connection_direction, error)); + BOOST_CHECK(NetWhitelistPermissions::TryParse("bloom,forcerelay,noban,relay,mempool@1.2.3.4/32", whitelistPermissions, error)); + ConnectionDirection connection_direction; BOOST_CHECK(NetWhitelistPermissions::TryParse("in,relay@1.2.3.4", whitelistPermissions, connection_direction, error)); BOOST_CHECK_EQUAL(connection_direction, ConnectionDirection::In); BOOST_CHECK(NetWhitelistPermissions::TryParse("out,bloom@1.2.3.4", whitelistPermissions, connection_direction, error));