aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@protonmail.com>2019-08-19 11:18:47 +0200
committerWladimir J. van der Laan <laanwj@protonmail.com>2019-08-19 11:20:23 +0200
commited9a2a37c1878ba6b75c39b7cb263dc16c52a295 (patch)
treeb8e0d567e57461b773718b74996b4a8c58f638fe
parent91ed1b3e06d5ce821adf867077d5394a22e9777e (diff)
parent3b05f0f70fbaee5b5eaa0d1b6f3b9d32f44410bb (diff)
downloadbitcoin-ed9a2a37c1878ba6b75c39b7cb263dc16c52a295.tar.xz
Merge #16631: net: The default whitelistrelay should be true
3b05f0f70fbaee5b5eaa0d1b6f3b9d32f44410bb Reformat p2p_permissions.py (nicolas.dorier) ce7eac3cb0e7d301db75de24e9a7b0af93c61311 [Fix] The default whitelistrelay should be true (nicolas.dorier) Pull request description: I thought `whitelistrelay` default was `false` when it is `true`. The root of the issue come from the fact that all references to `DEFAULT_` are not in the scope of this file, so hard coding of default values are used everywhere in `net.cpp`. I think that in a separate PR we should fix that more fundamentally everywhere. ACKs for top commit: promag: ACK 3b05f0f70fbaee5b5eaa0d1b6f3b9d32f44410bb. Sjors: re-ACK 3b05f0f70fbaee5b5eaa0d1b6f3b9d32f44410bb Tree-SHA512: f4a75f986fa2adf1a5f1c91605e0d261f7ac5ac8535fb05437d83b8392dbcf5cc1a47d755adcf8ad8dc67a88de28060187200fd3ce06545261a5c7ec0fea831a
-rw-r--r--src/net.cpp4
-rw-r--r--src/net.h5
-rw-r--r--src/validation.h4
-rwxr-xr-x[-rw-r--r--]test/functional/p2p_permissions.py66
-rwxr-xr-x[-rw-r--r--]test/functional/rpc_setban.py0
5 files changed, 43 insertions, 36 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 0391edadaa..337d1f6a46 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -909,8 +909,8 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
bool legacyWhitelisted = false;
if (NetPermissions::HasFlag(permissionFlags, NetPermissionFlags::PF_ISIMPLICIT)) {
NetPermissions::ClearFlag(permissionFlags, PF_ISIMPLICIT);
- if (gArgs.GetBoolArg("-whitelistforcerelay", false)) NetPermissions::AddFlag(permissionFlags, PF_FORCERELAY);
- if (gArgs.GetBoolArg("-whitelistrelay", false)) NetPermissions::AddFlag(permissionFlags, PF_RELAY);
+ if (gArgs.GetBoolArg("-whitelistforcerelay", DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag(permissionFlags, PF_FORCERELAY);
+ if (gArgs.GetBoolArg("-whitelistrelay", DEFAULT_WHITELISTRELAY)) NetPermissions::AddFlag(permissionFlags, PF_RELAY);
NetPermissions::AddFlag(permissionFlags, PF_MEMPOOL);
NetPermissions::AddFlag(permissionFlags, PF_NOBAN);
legacyWhitelisted = true;
diff --git a/src/net.h b/src/net.h
index 75c05c9cb5..6c77d8135f 100644
--- a/src/net.h
+++ b/src/net.h
@@ -40,6 +40,11 @@ class CScheduler;
class CNode;
class BanMan;
+/** Default for -whitelistrelay. */
+static const bool DEFAULT_WHITELISTRELAY = true;
+/** Default for -whitelistforcerelay. */
+static const bool DEFAULT_WHITELISTFORCERELAY = false;
+
/** Time between pings automatically sent out for latency probing and keepalive (in seconds). */
static const int PING_INTERVAL = 2 * 60;
/** Time after which to disconnect, after waiting for a ping response (or inactivity). */
diff --git a/src/validation.h b/src/validation.h
index 7cf3311f22..99850f71d9 100644
--- a/src/validation.h
+++ b/src/validation.h
@@ -50,10 +50,6 @@ struct DisconnectedBlockTransactions;
struct PrecomputedTransactionData;
struct LockPoints;
-/** Default for -whitelistrelay. */
-static const bool DEFAULT_WHITELISTRELAY = true;
-/** Default for -whitelistforcerelay. */
-static const bool DEFAULT_WHITELISTFORCERELAY = false;
/** Default for -minrelaytxfee, minimum relay fee for transactions */
static const unsigned int DEFAULT_MIN_RELAY_TX_FEE = 1000;
/** Default for -limitancestorcount, max number of in-mempool ancestors */
diff --git a/test/functional/p2p_permissions.py b/test/functional/p2p_permissions.py
index 1013055420..40b28d7533 100644..100755
--- a/test/functional/p2p_permissions.py
+++ b/test/functional/p2p_permissions.py
@@ -23,18 +23,24 @@ class P2PPermissionsTests(BitcoinTestFramework):
def run_test(self):
self.checkpermission(
- # relay permission added
- ["-whitelist=127.0.0.1", "-whitelistrelay"],
- ["relay", "noban", "mempool"],
- True)
+ # default permissions (no specific permissions)
+ ["-whitelist=127.0.0.1"],
+ ["relay", "noban", "mempool"],
+ True)
self.checkpermission(
- # forcerelay and relay permission added
- # Legacy parameter interaction which set whitelistrelay to true
- # if whitelistforcerelay is true
- ["-whitelist=127.0.0.1", "-whitelistforcerelay"],
- ["forcerelay", "relay", "noban", "mempool"],
- True)
+ # relay permission removed (no specific permissions)
+ ["-whitelist=127.0.0.1", "-whitelistrelay=0"],
+ ["noban", "mempool"],
+ True)
+
+ self.checkpermission(
+ # forcerelay and relay permission added
+ # Legacy parameter interaction which set whitelistrelay to true
+ # if whitelistforcerelay is true
+ ["-whitelist=127.0.0.1", "-whitelistforcerelay"],
+ ["forcerelay", "relay", "noban", "mempool"],
+ True)
# Let's make sure permissions are merged correctly
# For this, we need to use whitebind instead of bind
@@ -42,35 +48,35 @@ class P2PPermissionsTests(BitcoinTestFramework):
ip_port = "127.0.0.1:{}".format(p2p_port(1))
self.replaceinconfig(1, "bind=127.0.0.1", "whitebind=bloomfilter,forcerelay@" + ip_port)
self.checkpermission(
- ["-whitelist=noban@127.0.0.1" ],
- # Check parameter interaction forcerelay should activate relay
- ["noban", "bloomfilter", "forcerelay", "relay" ],
- False)
+ ["-whitelist=noban@127.0.0.1" ],
+ # Check parameter interaction forcerelay should activate relay
+ ["noban", "bloomfilter", "forcerelay", "relay" ],
+ False)
self.replaceinconfig(1, "whitebind=bloomfilter,forcerelay@" + ip_port, "bind=127.0.0.1")
self.checkpermission(
- # legacy whitelistrelay should be ignored
- ["-whitelist=noban,mempool@127.0.0.1", "-whitelistrelay"],
- ["noban", "mempool"],
- False)
+ # legacy whitelistrelay should be ignored
+ ["-whitelist=noban,mempool@127.0.0.1", "-whitelistrelay"],
+ ["noban", "mempool"],
+ False)
self.checkpermission(
- # legacy whitelistforcerelay should be ignored
- ["-whitelist=noban,mempool@127.0.0.1", "-whitelistforcerelay"],
- ["noban", "mempool"],
- False)
+ # legacy whitelistforcerelay should be ignored
+ ["-whitelist=noban,mempool@127.0.0.1", "-whitelistforcerelay"],
+ ["noban", "mempool"],
+ False)
self.checkpermission(
- # missing mempool permission to be considered legacy whitelisted
- ["-whitelist=noban@127.0.0.1"],
- ["noban"],
- False)
+ # missing mempool permission to be considered legacy whitelisted
+ ["-whitelist=noban@127.0.0.1"],
+ ["noban"],
+ False)
self.checkpermission(
- # all permission added
- ["-whitelist=all@127.0.0.1"],
- ["forcerelay", "noban", "mempool", "bloomfilter", "relay"],
- False)
+ # all permission added
+ ["-whitelist=all@127.0.0.1"],
+ ["forcerelay", "noban", "mempool", "bloomfilter", "relay"],
+ False)
self.stop_node(1)
self.nodes[1].assert_start_raises_init_error(["-whitelist=oopsie@127.0.0.1"], "Invalid P2P permission", match=ErrorMatch.PARTIAL_REGEX)
diff --git a/test/functional/rpc_setban.py b/test/functional/rpc_setban.py
index a1a8196557..a1a8196557 100644..100755
--- a/test/functional/rpc_setban.py
+++ b/test/functional/rpc_setban.py