aboutsummaryrefslogtreecommitdiff
path: root/src/net.h
diff options
context:
space:
mode:
authorAmiti Uttarwar <amiti@uttarwar.org>2020-07-20 14:24:48 -0700
committerAmiti Uttarwar <amiti@uttarwar.org>2020-08-07 17:18:16 -0700
commit2f2e13b6c2c8741ca9d825eaaef736ede484bc85 (patch)
tree225aa16a085f9bc34a6e96653bec35da60853270 /src/net.h
parent7f7b83deb2427599c129f4ff581d4d045461e459 (diff)
downloadbitcoin-2f2e13b6c2c8741ca9d825eaaef736ede484bc85.tar.xz
[net/refactor] Simplify multiple-connection checks
Extract logic that check multiple connection types into interface functions & structure as switch statements. This makes it very clear what touch points are for accessing `m_conn_type` & using the switch statements enables the compiler to warn if a new connection type is introduced but not handled for these cases.
Diffstat (limited to 'src/net.h')
-rw-r--r--src/net.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/net.h b/src/net.h
index 4834050122..444a1ceed2 100644
--- a/src/net.h
+++ b/src/net.h
@@ -789,6 +789,21 @@ public:
std::atomic_bool fPauseRecv{false};
std::atomic_bool fPauseSend{false};
+ bool IsOutboundOrBlockRelayConn() const {
+ switch(m_conn_type) {
+ case ConnectionType::OUTBOUND:
+ case ConnectionType::BLOCK_RELAY:
+ return true;
+ case ConnectionType::INBOUND:
+ case ConnectionType::MANUAL:
+ case ConnectionType::ADDR_FETCH:
+ case ConnectionType::FEELER:
+ return false;
+ }
+
+ assert(false);
+ }
+
bool IsFullOutboundConn() const {
return m_conn_type == ConnectionType::OUTBOUND;
}