Raven Core  3.0.0
P2P Digital Currency
Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
CConnman Class Reference

#include <net.h>

Collaboration diagram for CConnman:
[legend]

Classes

struct  ListenSocket
 
struct  Options
 

Public Types

enum  NumConnections { CONNECTIONS_NONE = 0, CONNECTIONS_IN = (1U << 0), CONNECTIONS_OUT = (1U << 1), CONNECTIONS_ALL = (CONNECTIONS_IN | CONNECTIONS_OUT) }
 

Public Member Functions

void Init (const Options &connOptions)
 
 CConnman (uint64_t seed0, uint64_t seed1)
 
 ~CConnman ()
 
bool Start (CScheduler &scheduler, const Options &options)
 
void Stop ()
 
void Interrupt ()
 
bool GetNetworkActive () const
 
void SetNetworkActive (bool active)
 
bool OpenNetworkConnection (const CAddress &addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound=nullptr, const char *strDest=nullptr, bool fOneShot=false, bool fFeeler=false, bool manual_connection=false)
 
bool CheckIncomingNonce (uint64_t nonce)
 
bool ForNode (NodeId id, std::function< bool(CNode *pnode)> func)
 
void PushMessage (CNode *pnode, CSerializedNetMsg &&msg)
 
template<typename Callable >
void ForEachNode (Callable &&func)
 
template<typename Callable >
void ForEachNode (Callable &&func) const
 
template<typename Callable , typename CallableAfter >
void ForEachNodeThen (Callable &&pre, CallableAfter &&post)
 
template<typename Callable , typename CallableAfter >
void ForEachNodeThen (Callable &&pre, CallableAfter &&post) const
 
size_t GetAddressCount () const
 
void SetServices (const CService &addr, ServiceFlags nServices)
 
void MarkAddressGood (const CAddress &addr)
 
void AddNewAddresses (const std::vector< CAddress > &vAddr, const CAddress &addrFrom, int64_t nTimePenalty=0)
 
std::vector< CAddressGetAddresses ()
 
void Ban (const CNetAddr &netAddr, const BanReason &reason, int64_t bantimeoffset=0, bool sinceUnixEpoch=false)
 
void Ban (const CSubNet &subNet, const BanReason &reason, int64_t bantimeoffset=0, bool sinceUnixEpoch=false)
 
void ClearBanned ()
 
bool IsBanned (CNetAddr ip)
 
bool IsBanned (CSubNet subnet)
 
bool Unban (const CNetAddr &ip)
 
bool Unban (const CSubNet &ip)
 
void GetBanned (banmap_t &banmap)
 
void SetBanned (const banmap_t &banmap)
 
void SetTryNewOutboundPeer (bool flag)
 
bool GetTryNewOutboundPeer ()
 
int GetExtraOutboundCount ()
 
bool AddNode (const std::string &node)
 
bool RemoveAddedNode (const std::string &node)
 
std::vector< AddedNodeInfoGetAddedNodeInfo ()
 
size_t GetNodeCount (NumConnections num)
 
void GetNodeStats (std::vector< CNodeStats > &vstats)
 
bool DisconnectNode (const std::string &node)
 
bool DisconnectNode (NodeId id)
 
ServiceFlags GetLocalServices () const
 
void SetMaxOutboundTarget (uint64_t limit)
 set the max outbound target in bytes More...
 
uint64_t GetMaxOutboundTarget ()
 
void SetMaxOutboundTimeframe (uint64_t timeframe)
 set the timeframe for the max outbound target More...
 
uint64_t GetMaxOutboundTimeframe ()
 
bool OutboundTargetReached (bool historicalBlockServingLimit)
 check if the outbound target is reached More...
 
uint64_t GetOutboundTargetBytesLeft ()
 response the bytes left in the current max outbound cycle More...
 
uint64_t GetMaxOutboundTimeLeftInCycle ()
 response the time in second left in the current max outbound cycle More...
 
uint64_t GetTotalBytesRecv ()
 
uint64_t GetTotalBytesSent ()
 
void SetBestHeight (int height)
 
int GetBestHeight () const
 
CSipHasher GetDeterministicRandomizer (uint64_t id) const
 Get a unique deterministic randomizer. More...
 
unsigned int GetReceiveFloodSize () const
 
void WakeMessageHandler ()
 

Private Member Functions

bool BindListenPort (const CService &bindAddr, std::string &strError, bool fWhitelisted=false)
 
bool Bind (const CService &addr, unsigned int flags)
 
bool InitBinds (const std::vector< CService > &binds, const std::vector< CService > &whiteBinds)
 
void ThreadOpenAddedConnections ()
 
void AddOneShot (const std::string &strDest)
 
void ProcessOneShot ()
 
void ThreadOpenConnections ()
 
void ThreadMessageHandler ()
 
void AcceptConnection (const ListenSocket &hListenSocket)
 
void ThreadSocketHandler ()
 
void ThreadDNSAddressSeed ()
 
uint64_t CalculateKeyedNetGroup (const CAddress &ad) const
 
CNodeFindNode (const CNetAddr &ip)
 
CNodeFindNode (const CSubNet &subNet)
 
CNodeFindNode (const std::string &addrName)
 
CNodeFindNode (const CService &addr)
 
bool AttemptToEvictConnection ()
 Try to find a connection to evict when the node is full. More...
 
CNodeConnectNode (CAddress addrConnect, const char *pszDest, bool fCountFailure)
 
bool IsWhitelistedRange (const CNetAddr &addr)
 
void DeleteNode (CNode *pnode)
 
NodeId GetNewNodeId ()
 
size_t SocketSendData (CNode *pnode) const
 
bool BannedSetIsDirty ()
 check is the banlist has unwritten changes More...
 
void SetBannedSetDirty (bool dirty=true)
 set the "dirty" flag for the banlist More...
 
void SweepBanned ()
 clean unused entries (if bantime has expired) More...
 
void DumpAddresses ()
 
void DumpData ()
 
void DumpBanlist ()
 
void RecordBytesRecv (uint64_t bytes)
 
void RecordBytesSent (uint64_t bytes)
 

Static Private Member Functions

static bool NodeFullyConnected (const CNode *pnode)
 

Private Attributes

CCriticalSection cs_totalBytesRecv
 
CCriticalSection cs_totalBytesSent
 
uint64_t nTotalBytesRecv
 
uint64_t nTotalBytesSent
 
uint64_t nMaxOutboundTotalBytesSentInCycle
 
uint64_t nMaxOutboundCycleStartTime
 
uint64_t nMaxOutboundLimit
 
uint64_t nMaxOutboundTimeframe
 
std::vector< CSubNetvWhitelistedRange
 
unsigned int nSendBufferMaxSize
 
unsigned int nReceiveFloodSize
 
std::vector< ListenSocketvhListenSocket
 
std::atomic< bool > fNetworkActive
 
banmap_t setBanned
 
CCriticalSection cs_setBanned
 
bool setBannedIsDirty
 
bool fAddressesInitialized
 
CAddrMan addrman
 
std::deque< std::string > vOneShots
 
CCriticalSection cs_vOneShots
 
std::vector< std::string > vAddedNodes
 
CCriticalSection cs_vAddedNodes
 
std::vector< CNode * > vNodes
 
std::list< CNode * > vNodesDisconnected
 
CCriticalSection cs_vNodes
 
std::atomic< NodeIdnLastNodeId
 
ServiceFlags nLocalServices
 Services this instance offers. More...
 
CSemaphoresemOutbound
 
CSemaphoresemAddnode
 
int nMaxConnections
 
int nMaxOutbound
 
int nMaxAddnode
 
int nMaxFeeler
 
std::atomic< int > nBestHeight
 
CClientUIInterfaceclientInterface
 
NetEventsInterfacem_msgproc
 
const uint64_t nSeed0
 SipHasher seeds for deterministic randomness. More...
 
const uint64_t nSeed1
 
bool fMsgProcWake
 flag for waking the message processor. More...
 
std::condition_variable condMsgProc
 
std::mutex mutexMsgProc
 
std::atomic< bool > flagInterruptMsgProc
 
CThreadInterrupt interruptNet
 
std::thread threadDNSAddressSeed
 
std::thread threadSocketHandler
 
std::thread threadOpenAddedConnections
 
std::thread threadOpenConnections
 
std::thread threadMessageHandler
 
std::atomic_bool m_try_another_outbound_peer
 flag for deciding to connect to an extra outbound peer, in excess of nMaxOutbound This takes the place of a feeler connection More...
 

Detailed Description

Definition at line 120 of file net.h.

Member Enumeration Documentation

◆ NumConnections

Enumerator
CONNECTIONS_NONE 
CONNECTIONS_IN 
CONNECTIONS_OUT 
CONNECTIONS_ALL 

Definition at line 124 of file net.h.

Constructor & Destructor Documentation

◆ CConnman()

CConnman::CConnman ( uint64_t  seed0,
uint64_t  seed1 
)

Definition at line 2249 of file net.cpp.

Here is the call graph for this function:

◆ ~CConnman()

CConnman::~CConnman ( )

Definition at line 2522 of file net.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ AcceptConnection()

void CConnman::AcceptConnection ( const ListenSocket hListenSocket)
private

Definition at line 1071 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddNewAddresses()

void CConnman::AddNewAddresses ( const std::vector< CAddress > &  vAddr,
const CAddress addrFrom,
int64_t  nTimePenalty = 0 
)

Definition at line 2543 of file net.cpp.

Here is the call graph for this function:

◆ AddNode()

bool CConnman::AddNode ( const std::string &  node)

Definition at line 2553 of file net.cpp.

◆ AddOneShot()

void CConnman::AddOneShot ( const std::string &  strDest)
private

Definition at line 97 of file net.cpp.

Here is the caller graph for this function:

◆ AttemptToEvictConnection()

bool CConnman::AttemptToEvictConnection ( )
private

Try to find a connection to evict when the node is full.

Extreme care must be taken to avoid opening the node to attacker triggered network partitioning. The strategy used here is to protect a small number of peers for each of several distinct characteristics which are difficult to forge. In order to partition a node the attacker must be simultaneously better at all of them than honest peers.

Definition at line 978 of file net.cpp.

◆ Ban() [1/2]

void CConnman::Ban ( const CNetAddr netAddr,
const BanReason reason,
int64_t  bantimeoffset = 0,
bool  sinceUnixEpoch = false 
)

Definition at line 532 of file net.cpp.

◆ Ban() [2/2]

void CConnman::Ban ( const CSubNet subNet,
const BanReason reason,
int64_t  bantimeoffset = 0,
bool  sinceUnixEpoch = false 
)

Definition at line 537 of file net.cpp.

Here is the call graph for this function:

◆ BannedSetIsDirty()

bool CConnman::BannedSetIsDirty ( )
private

check is the banlist has unwritten changes

Definition at line 623 of file net.cpp.

Here is the caller graph for this function:

◆ Bind()

bool CConnman::Bind ( const CService addr,
unsigned int  flags 
)
private

Definition at line 2272 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BindListenPort()

bool CConnman::BindListenPort ( const CService bindAddr,
std::string &  strError,
bool  fWhitelisted = false 
)
private

Definition at line 2078 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalculateKeyedNetGroup()

uint64_t CConnman::CalculateKeyedNetGroup ( const CAddress ad) const
private

Definition at line 2933 of file net.cpp.

Here is the call graph for this function:

◆ CheckIncomingNonce()

bool CConnman::CheckIncomingNonce ( uint64_t  nonce)

Definition at line 348 of file net.cpp.

◆ ClearBanned()

void CConnman::ClearBanned ( )

Definition at line 492 of file net.cpp.

Here is the call graph for this function:

◆ ConnectNode()

CNode * CConnman::ConnectNode ( CAddress  addrConnect,
const char *  pszDest,
bool  fCountFailure 
)
private

debug print

Definition at line 374 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DeleteNode()

void CConnman::DeleteNode ( CNode pnode)
private

Definition at line 2511 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DisconnectNode() [1/2]

bool CConnman::DisconnectNode ( const std::string &  node)

Definition at line 2603 of file net.cpp.

Here is the call graph for this function:

◆ DisconnectNode() [2/2]

bool CConnman::DisconnectNode ( NodeId  id)

Definition at line 2612 of file net.cpp.

◆ DumpAddresses()

void CConnman::DumpAddresses ( )
private

Definition at line 1675 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DumpBanlist()

void CConnman::DumpBanlist ( )
private

Definition at line 461 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DumpData()

void CConnman::DumpData ( )
private

Definition at line 1686 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindNode() [1/4]

CNode * CConnman::FindNode ( const CNetAddr ip)
private

Definition at line 304 of file net.cpp.

Here is the caller graph for this function:

◆ FindNode() [2/4]

CNode * CConnman::FindNode ( const CSubNet subNet)
private

Definition at line 315 of file net.cpp.

Here is the call graph for this function:

◆ FindNode() [3/4]

CNode * CConnman::FindNode ( const std::string &  addrName)
private

Definition at line 326 of file net.cpp.

◆ FindNode() [4/4]

CNode * CConnman::FindNode ( const CService addr)
private

Definition at line 337 of file net.cpp.

◆ ForEachNode() [1/2]

template<typename Callable >
void CConnman::ForEachNode ( Callable &&  func)
inline

Definition at line 185 of file net.h.

Here is the caller graph for this function:

◆ ForEachNode() [2/2]

template<typename Callable >
void CConnman::ForEachNode ( Callable &&  func) const
inline

Definition at line 195 of file net.h.

◆ ForEachNodeThen() [1/2]

template<typename Callable , typename CallableAfter >
void CConnman::ForEachNodeThen ( Callable &&  pre,
CallableAfter &&  post 
)
inline

Definition at line 205 of file net.h.

◆ ForEachNodeThen() [2/2]

template<typename Callable , typename CallableAfter >
void CConnman::ForEachNodeThen ( Callable &&  pre,
CallableAfter &&  post 
) const
inline

Definition at line 216 of file net.h.

◆ ForNode()

bool CConnman::ForNode ( NodeId  id,
std::function< bool(CNode *pnode)>  func 
)

Definition at line 2911 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAddedNodeInfo()

std::vector< AddedNodeInfo > CConnman::GetAddedNodeInfo ( )

Definition at line 1903 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAddressCount()

size_t CConnman::GetAddressCount ( ) const

Definition at line 2528 of file net.cpp.

Here is the call graph for this function:

◆ GetAddresses()

std::vector< CAddress > CConnman::GetAddresses ( )

Definition at line 2548 of file net.cpp.

Here is the call graph for this function:

◆ GetBanned()

void CConnman::GetBanned ( banmap_t banmap)

Definition at line 587 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBestHeight()

int CConnman::GetBestHeight ( ) const

Definition at line 2742 of file net.cpp.

◆ GetDeterministicRandomizer()

CSipHasher CConnman::GetDeterministicRandomizer ( uint64_t  id) const

Get a unique deterministic randomizer.

Definition at line 2928 of file net.cpp.

Here is the call graph for this function:

◆ GetExtraOutboundCount()

int CConnman::GetExtraOutboundCount ( )

Definition at line 1727 of file net.cpp.

Here is the caller graph for this function:

◆ GetLocalServices()

ServiceFlags CConnman::GetLocalServices ( ) const

Definition at line 2732 of file net.cpp.

◆ GetMaxOutboundTarget()

uint64_t CConnman::GetMaxOutboundTarget ( )

Definition at line 2653 of file net.cpp.

◆ GetMaxOutboundTimeframe()

uint64_t CConnman::GetMaxOutboundTimeframe ( )

Definition at line 2659 of file net.cpp.

◆ GetMaxOutboundTimeLeftInCycle()

uint64_t CConnman::GetMaxOutboundTimeLeftInCycle ( )

response the time in second left in the current max outbound cycle

Definition at line 2665 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNetworkActive()

bool CConnman::GetNetworkActive ( ) const
inline

Definition at line 175 of file net.h.

◆ GetNewNodeId()

NodeId CConnman::GetNewNodeId ( )
private

Definition at line 2266 of file net.cpp.

◆ GetNodeCount()

size_t CConnman::GetNodeCount ( NumConnections  num)

Definition at line 2576 of file net.cpp.

◆ GetNodeStats()

void CConnman::GetNodeStats ( std::vector< CNodeStats > &  vstats)

Definition at line 2592 of file net.cpp.

◆ GetOutboundTargetBytesLeft()

uint64_t CConnman::GetOutboundTargetBytesLeft ( )

response the bytes left in the current max outbound cycle

Definition at line 2711 of file net.cpp.

◆ GetReceiveFloodSize()

unsigned int CConnman::GetReceiveFloodSize ( ) const

Definition at line 2747 of file net.cpp.

◆ GetTotalBytesRecv()

uint64_t CConnman::GetTotalBytesRecv ( )

Definition at line 2720 of file net.cpp.

◆ GetTotalBytesSent()

uint64_t CConnman::GetTotalBytesSent ( )

Definition at line 2726 of file net.cpp.

◆ GetTryNewOutboundPeer()

bool CConnman::GetTryNewOutboundPeer ( )

Definition at line 1710 of file net.cpp.

Here is the caller graph for this function:

◆ Init()

void CConnman::Init ( const Options connOptions)
inline

Definition at line 153 of file net.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitBinds()

bool CConnman::InitBinds ( const std::vector< CService > &  binds,
const std::vector< CService > &  whiteBinds 
)
private

Definition at line 2285 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Interrupt()

void CConnman::Interrupt ( )

Definition at line 2444 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsBanned() [1/2]

bool CConnman::IsBanned ( CNetAddr  ip)

Definition at line 504 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsBanned() [2/2]

bool CConnman::IsBanned ( CSubNet  subnet)

Definition at line 518 of file net.cpp.

Here is the call graph for this function:

◆ IsWhitelistedRange()

bool CConnman::IsWhitelistedRange ( const CNetAddr addr)
private

Definition at line 636 of file net.cpp.

Here is the caller graph for this function:

◆ MarkAddressGood()

void CConnman::MarkAddressGood ( const CAddress addr)

Definition at line 2538 of file net.cpp.

Here is the call graph for this function:

◆ NodeFullyConnected()

bool CConnman::NodeFullyConnected ( const CNode pnode)
staticprivate

Definition at line 2866 of file net.cpp.

◆ OpenNetworkConnection()

bool CConnman::OpenNetworkConnection ( const CAddress addrConnect,
bool  fCountFailure,
CSemaphoreGrant grantOutbound = nullptr,
const char *  strDest = nullptr,
bool  fOneShot = false,
bool  fFeeler = false,
bool  manual_connection = false 
)

Definition at line 1983 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutboundTargetReached()

bool CConnman::OutboundTargetReached ( bool  historicalBlockServingLimit)

check if the outbound target is reached

Definition at line 2691 of file net.cpp.

Here is the call graph for this function:

◆ ProcessOneShot()

void CConnman::ProcessOneShot ( )
private

Definition at line 1692 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PushMessage()

void CConnman::PushMessage ( CNode pnode,
CSerializedNetMsg &&  msg 
)

Definition at line 2871 of file net.cpp.

Here is the call graph for this function:

◆ RecordBytesRecv()

void CConnman::RecordBytesRecv ( uint64_t  bytes)
private

Definition at line 2624 of file net.cpp.

Here is the caller graph for this function:

◆ RecordBytesSent()

void CConnman::RecordBytesSent ( uint64_t  bytes)
private

Definition at line 2630 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveAddedNode()

bool CConnman::RemoveAddedNode ( const std::string &  node)

Definition at line 2564 of file net.cpp.

◆ SetBanned()

void CConnman::SetBanned ( const banmap_t banmap)

Definition at line 595 of file net.cpp.

Here is the caller graph for this function:

◆ SetBannedSetDirty()

void CConnman::SetBannedSetDirty ( bool  dirty = true)
private

set the "dirty" flag for the banlist

Definition at line 629 of file net.cpp.

Here is the caller graph for this function:

◆ SetBestHeight()

void CConnman::SetBestHeight ( int  height)

Definition at line 2737 of file net.cpp.

Here is the caller graph for this function:

◆ SetMaxOutboundTarget()

void CConnman::SetMaxOutboundTarget ( uint64_t  limit)

set the max outbound target in bytes

Definition at line 2647 of file net.cpp.

◆ SetMaxOutboundTimeframe()

void CConnman::SetMaxOutboundTimeframe ( uint64_t  timeframe)

set the timeframe for the max outbound target

Definition at line 2679 of file net.cpp.

Here is the call graph for this function:

◆ SetNetworkActive()

void CConnman::SetNetworkActive ( bool  active)

Definition at line 2228 of file net.cpp.

◆ SetServices()

void CConnman::SetServices ( const CService addr,
ServiceFlags  nServices 
)

Definition at line 2533 of file net.cpp.

Here is the call graph for this function:

◆ SetTryNewOutboundPeer()

void CConnman::SetTryNewOutboundPeer ( bool  flag)

Definition at line 1715 of file net.cpp.

Here is the caller graph for this function:

◆ SocketSendData()

size_t CConnman::SocketSendData ( CNode pnode) const
private

Definition at line 873 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Start()

bool CConnman::Start ( CScheduler scheduler,
const Options options 
)

Definition at line 2302 of file net.cpp.

Here is the call graph for this function:

◆ Stop()

void CConnman::Stop ( )

Definition at line 2468 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SweepBanned()

void CConnman::SweepBanned ( )
private

clean unused entries (if bantime has expired)

Definition at line 602 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ThreadDNSAddressSeed()

void CConnman::ThreadDNSAddressSeed ( )
private

Definition at line 1596 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ThreadMessageHandler()

void CConnman::ThreadMessageHandler ( )
private

Definition at line 2024 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ThreadOpenAddedConnections()

void CConnman::ThreadOpenAddedConnections ( )
private

Definition at line 1955 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ThreadOpenConnections()

void CConnman::ThreadOpenConnections ( )
private

Definition at line 1741 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ThreadSocketHandler()

void CConnman::ThreadSocketHandler ( )
private

Definition at line 1152 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Unban() [1/2]

bool CConnman::Unban ( const CNetAddr ip)

Definition at line 569 of file net.cpp.

◆ Unban() [2/2]

bool CConnman::Unban ( const CSubNet ip)

Definition at line 574 of file net.cpp.

Here is the call graph for this function:

◆ WakeMessageHandler()

void CConnman::WakeMessageHandler ( )

Definition at line 1448 of file net.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ addrman

CAddrMan CConnman::addrman
private

Definition at line 392 of file net.h.

◆ clientInterface

CClientUIInterface* CConnman::clientInterface
private

Definition at line 412 of file net.h.

◆ condMsgProc

std::condition_variable CConnman::condMsgProc
private

Definition at line 421 of file net.h.

◆ cs_setBanned

CCriticalSection CConnman::cs_setBanned
private

Definition at line 389 of file net.h.

◆ cs_totalBytesRecv

CCriticalSection CConnman::cs_totalBytesRecv
private

Definition at line 368 of file net.h.

◆ cs_totalBytesSent

CCriticalSection CConnman::cs_totalBytesSent
private

Definition at line 369 of file net.h.

◆ cs_vAddedNodes

CCriticalSection CConnman::cs_vAddedNodes
private

Definition at line 396 of file net.h.

◆ cs_vNodes

CCriticalSection CConnman::cs_vNodes
mutableprivate

Definition at line 399 of file net.h.

◆ cs_vOneShots

CCriticalSection CConnman::cs_vOneShots
private

Definition at line 394 of file net.h.

◆ fAddressesInitialized

bool CConnman::fAddressesInitialized
private

Definition at line 391 of file net.h.

◆ flagInterruptMsgProc

std::atomic<bool> CConnman::flagInterruptMsgProc
private

Definition at line 423 of file net.h.

◆ fMsgProcWake

bool CConnman::fMsgProcWake
private

flag for waking the message processor.

Definition at line 419 of file net.h.

◆ fNetworkActive

std::atomic<bool> CConnman::fNetworkActive
private

Definition at line 387 of file net.h.

◆ interruptNet

CThreadInterrupt CConnman::interruptNet
private

Definition at line 425 of file net.h.

◆ m_msgproc

NetEventsInterface* CConnman::m_msgproc
private

Definition at line 413 of file net.h.

◆ m_try_another_outbound_peer

std::atomic_bool CConnman::m_try_another_outbound_peer
private

flag for deciding to connect to an extra outbound peer, in excess of nMaxOutbound This takes the place of a feeler connection

Definition at line 436 of file net.h.

◆ mutexMsgProc

std::mutex CConnman::mutexMsgProc
private

Definition at line 422 of file net.h.

◆ nBestHeight

std::atomic<int> CConnman::nBestHeight
private

Definition at line 411 of file net.h.

◆ nLastNodeId

std::atomic<NodeId> CConnman::nLastNodeId
private

Definition at line 400 of file net.h.

◆ nLocalServices

ServiceFlags CConnman::nLocalServices
private

Services this instance offers.

Definition at line 403 of file net.h.

◆ nMaxAddnode

int CConnman::nMaxAddnode
private

Definition at line 409 of file net.h.

◆ nMaxConnections

int CConnman::nMaxConnections
private

Definition at line 407 of file net.h.

◆ nMaxFeeler

int CConnman::nMaxFeeler
private

Definition at line 410 of file net.h.

◆ nMaxOutbound

int CConnman::nMaxOutbound
private

Definition at line 408 of file net.h.

◆ nMaxOutboundCycleStartTime

uint64_t CConnman::nMaxOutboundCycleStartTime
private

Definition at line 375 of file net.h.

◆ nMaxOutboundLimit

uint64_t CConnman::nMaxOutboundLimit
private

Definition at line 376 of file net.h.

◆ nMaxOutboundTimeframe

uint64_t CConnman::nMaxOutboundTimeframe
private

Definition at line 377 of file net.h.

◆ nMaxOutboundTotalBytesSentInCycle

uint64_t CConnman::nMaxOutboundTotalBytesSentInCycle
private

Definition at line 374 of file net.h.

◆ nReceiveFloodSize

unsigned int CConnman::nReceiveFloodSize
private

Definition at line 384 of file net.h.

◆ nSeed0

const uint64_t CConnman::nSeed0
private

SipHasher seeds for deterministic randomness.

Definition at line 416 of file net.h.

◆ nSeed1

const uint64_t CConnman::nSeed1
private

Definition at line 416 of file net.h.

◆ nSendBufferMaxSize

unsigned int CConnman::nSendBufferMaxSize
private

Definition at line 383 of file net.h.

◆ nTotalBytesRecv

uint64_t CConnman::nTotalBytesRecv
private

Definition at line 370 of file net.h.

◆ nTotalBytesSent

uint64_t CConnman::nTotalBytesSent
private

Definition at line 371 of file net.h.

◆ semAddnode

CSemaphore* CConnman::semAddnode
private

Definition at line 406 of file net.h.

◆ semOutbound

CSemaphore* CConnman::semOutbound
private

Definition at line 405 of file net.h.

◆ setBanned

banmap_t CConnman::setBanned
private

Definition at line 388 of file net.h.

◆ setBannedIsDirty

bool CConnman::setBannedIsDirty
private

Definition at line 390 of file net.h.

◆ threadDNSAddressSeed

std::thread CConnman::threadDNSAddressSeed
private

Definition at line 427 of file net.h.

◆ threadMessageHandler

std::thread CConnman::threadMessageHandler
private

Definition at line 431 of file net.h.

◆ threadOpenAddedConnections

std::thread CConnman::threadOpenAddedConnections
private

Definition at line 429 of file net.h.

◆ threadOpenConnections

std::thread CConnman::threadOpenConnections
private

Definition at line 430 of file net.h.

◆ threadSocketHandler

std::thread CConnman::threadSocketHandler
private

Definition at line 428 of file net.h.

◆ vAddedNodes

std::vector<std::string> CConnman::vAddedNodes
private

Definition at line 395 of file net.h.

◆ vhListenSocket

std::vector<ListenSocket> CConnman::vhListenSocket
private

Definition at line 386 of file net.h.

◆ vNodes

std::vector<CNode*> CConnman::vNodes
private

Definition at line 397 of file net.h.

◆ vNodesDisconnected

std::list<CNode*> CConnman::vNodesDisconnected
private

Definition at line 398 of file net.h.

◆ vOneShots

std::deque<std::string> CConnman::vOneShots
private

Definition at line 393 of file net.h.

◆ vWhitelistedRange

std::vector<CSubNet> CConnman::vWhitelistedRange
private

Definition at line 381 of file net.h.


The documentation for this class was generated from the following files: