Skip to content

Commit

Permalink
[refactor] Remove netaddress.h from kernel headers
Browse files Browse the repository at this point in the history
Move functions requiring the netaddress.h include out of
libbitcoinkernel source files.

The netaddress.h file contains many non-consensus related definitions
and should thus not be part of the libbitcoinkernel. This commit makes
netaddress.h no longer a required include for users of the
libbitcoinkernel.

This commit is part of the libbitcoinkernel project, namely its stage 1
step 3: Decouple most non-consensus headers from libbitcoinkernel.
  • Loading branch information
TheCharlatan committed Sep 12, 2023
1 parent 2b08c55 commit 36193af
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 12 deletions.
10 changes: 0 additions & 10 deletions src/kernel/chainparams.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

#include <consensus/params.h>
#include <kernel/messagestartchars.h>
#include <netaddress.h>
#include <primitives/block.h>
#include <uint256.h>
#include <util/chaintype.h>
Expand Down Expand Up @@ -89,15 +88,6 @@ class CChainParams
const Consensus::Params& GetConsensus() const { return consensus; }
const MessageStartChars& MessageStart() const { return pchMessageStart; }
uint16_t GetDefaultPort() const { return nDefaultPort; }
uint16_t GetDefaultPort(Network net) const
{
return net == NET_I2P ? I2P_SAM31_PORT : GetDefaultPort();
}
uint16_t GetDefaultPort(const std::string& addr) const
{
CNetAddr a;
return a.SetSpecial(addr) ? GetDefaultPort(a.GetNetwork()) : GetDefaultPort();
}

const CBlock& GenesisBlock() const { return genesis; }
/** Default value for -checkmempool and -checkblockindex argument */
Expand Down
14 changes: 12 additions & 2 deletions src/net.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
Ticks<HoursDouble>(pszDest ? 0h : Now<NodeSeconds>() - addrConnect.nTime));

// Resolve
const uint16_t default_port{pszDest != nullptr ? m_params.GetDefaultPort(pszDest) :
const uint16_t default_port{pszDest != nullptr ? GetDefaultPort(pszDest) :
m_params.GetDefaultPort()};
if (pszDest) {
const std::vector<CService> resolved{Lookup(pszDest, default_port, fNameLookup && !HaveNameProxy(), 256)};
Expand Down Expand Up @@ -2769,7 +2769,7 @@ std::vector<AddedNodeInfo> CConnman::GetAddedNodeInfo() const
}

for (const std::string& strAddNode : lAddresses) {
CService service(LookupNumeric(strAddNode, m_params.GetDefaultPort(strAddNode)));
CService service(LookupNumeric(strAddNode, GetDefaultPort(strAddNode)));
AddedNodeInfo addedNode{strAddNode, CService(), false, false};
if (service.IsValid()) {
// strAddNode is an IP:port
Expand Down Expand Up @@ -3094,6 +3094,16 @@ NodeId CConnman::GetNewNodeId()
return nLastNodeId.fetch_add(1, std::memory_order_relaxed);
}

uint16_t CConnman::GetDefaultPort(Network net) const
{
return net == NET_I2P ? I2P_SAM31_PORT : m_params.GetDefaultPort();
}

uint16_t CConnman::GetDefaultPort(const std::string& addr) const
{
CNetAddr a;
return a.SetSpecial(addr) ? GetDefaultPort(a.GetNetwork()) : m_params.GetDefaultPort();
}

bool CConnman::Bind(const CService& addr_, unsigned int flags, NetPermissionFlags permissions)
{
Expand Down
3 changes: 3 additions & 0 deletions src/net.h
Original file line number Diff line number Diff line change
Expand Up @@ -1358,6 +1358,9 @@ class CConnman
// Whether the node should be passed out in ForEach* callbacks
static bool NodeFullyConnected(const CNode* pnode);

uint16_t GetDefaultPort(Network net) const;
uint16_t GetDefaultPort(const std::string& addr) const;

// Network usage totals
mutable Mutex m_total_bytes_sent_mutex;
std::atomic<uint64_t> nTotalBytesRecv{0};
Expand Down

0 comments on commit 36193af

Please sign in to comment.