Use C++11 default member initializers
This commit is contained in:
parent
3f12515199
commit
fac2f5ecae
2 changed files with 45 additions and 87 deletions
48
src/net.cpp
48
src/net.cpp
|
@ -2796,8 +2796,8 @@ int CConnman::GetBestHeight() const
|
||||||
|
|
||||||
unsigned int CConnman::GetReceiveFloodSize() const { return nReceiveFloodSize; }
|
unsigned int CConnman::GetReceiveFloodSize() const { return nReceiveFloodSize; }
|
||||||
|
|
||||||
CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn, SOCKET hSocketIn, const CAddress& addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string& addrNameIn, bool fInboundIn) :
|
CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn, SOCKET hSocketIn, const CAddress& addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress& addrBindIn, const std::string& addrNameIn, bool fInboundIn)
|
||||||
nTimeConnected(GetSystemTimeInSeconds()),
|
: nTimeConnected(GetSystemTimeInSeconds()),
|
||||||
addr(addrIn),
|
addr(addrIn),
|
||||||
addrBind(addrBindIn),
|
addrBind(addrBindIn),
|
||||||
fInbound(fInboundIn),
|
fInbound(fInboundIn),
|
||||||
|
@ -2807,56 +2807,14 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn
|
||||||
id(idIn),
|
id(idIn),
|
||||||
nLocalHostNonce(nLocalHostNonceIn),
|
nLocalHostNonce(nLocalHostNonceIn),
|
||||||
nLocalServices(nLocalServicesIn),
|
nLocalServices(nLocalServicesIn),
|
||||||
nMyStartingHeight(nMyStartingHeightIn),
|
nMyStartingHeight(nMyStartingHeightIn)
|
||||||
nSendVersion(0)
|
|
||||||
{
|
{
|
||||||
nServices = NODE_NONE;
|
|
||||||
hSocket = hSocketIn;
|
hSocket = hSocketIn;
|
||||||
nRecvVersion = INIT_PROTO_VERSION;
|
|
||||||
nLastSend = 0;
|
|
||||||
nLastRecv = 0;
|
|
||||||
nSendBytes = 0;
|
|
||||||
nRecvBytes = 0;
|
|
||||||
nTimeOffset = 0;
|
|
||||||
addrName = addrNameIn == "" ? addr.ToStringIPPort() : addrNameIn;
|
addrName = addrNameIn == "" ? addr.ToStringIPPort() : addrNameIn;
|
||||||
nVersion = 0;
|
|
||||||
strSubVer = "";
|
strSubVer = "";
|
||||||
fWhitelisted = false;
|
|
||||||
fOneShot = false;
|
|
||||||
m_manual_connection = false;
|
|
||||||
fClient = false; // set by version message
|
|
||||||
m_limited_node = false; // set by version message
|
|
||||||
fFeeler = false;
|
|
||||||
fSuccessfullyConnected = false;
|
|
||||||
fDisconnect = false;
|
|
||||||
nRefCount = 0;
|
|
||||||
nSendSize = 0;
|
|
||||||
nSendOffset = 0;
|
|
||||||
hashContinue = uint256();
|
hashContinue = uint256();
|
||||||
nStartingHeight = -1;
|
|
||||||
filterInventoryKnown.reset();
|
filterInventoryKnown.reset();
|
||||||
fSendMempool = false;
|
|
||||||
fGetAddr = false;
|
|
||||||
nNextLocalAddrSend = 0;
|
|
||||||
nNextAddrSend = 0;
|
|
||||||
nNextInvSend = 0;
|
|
||||||
fRelayTxes = false;
|
|
||||||
fSentAddr = false;
|
|
||||||
pfilter = MakeUnique<CBloomFilter>();
|
pfilter = MakeUnique<CBloomFilter>();
|
||||||
timeLastMempoolReq = 0;
|
|
||||||
nLastBlockTime = 0;
|
|
||||||
nLastTXTime = 0;
|
|
||||||
nPingNonceSent = 0;
|
|
||||||
nPingUsecStart = 0;
|
|
||||||
nPingUsecTime = 0;
|
|
||||||
fPingQueued = false;
|
|
||||||
nMinPingUsecTime = std::numeric_limits<int64_t>::max();
|
|
||||||
minFeeFilter = 0;
|
|
||||||
lastSentFeeFilter = 0;
|
|
||||||
nextSendTimeFeeFilter = 0;
|
|
||||||
fPauseRecv = false;
|
|
||||||
fPauseSend = false;
|
|
||||||
nProcessQueueSize = 0;
|
|
||||||
|
|
||||||
for (const std::string &msg : getAllNetMessageTypes())
|
for (const std::string &msg : getAllNetMessageTypes())
|
||||||
mapRecvBytesPerMsgCmd[msg] = 0;
|
mapRecvBytesPerMsgCmd[msg] = 0;
|
||||||
|
|
84
src/net.h
84
src/net.h
|
@ -640,11 +640,11 @@ class CNode
|
||||||
friend class CConnman;
|
friend class CConnman;
|
||||||
public:
|
public:
|
||||||
// socket
|
// socket
|
||||||
std::atomic<ServiceFlags> nServices;
|
std::atomic<ServiceFlags> nServices{NODE_NONE};
|
||||||
SOCKET hSocket GUARDED_BY(cs_hSocket);
|
SOCKET hSocket GUARDED_BY(cs_hSocket);
|
||||||
size_t nSendSize; // total size of all vSendMsg entries
|
size_t nSendSize{0}; // total size of all vSendMsg entries
|
||||||
size_t nSendOffset; // offset inside the first vSendMsg already sent
|
size_t nSendOffset{0}; // offset inside the first vSendMsg already sent
|
||||||
uint64_t nSendBytes GUARDED_BY(cs_vSend);
|
uint64_t nSendBytes GUARDED_BY(cs_vSend){0};
|
||||||
std::deque<std::vector<unsigned char>> vSendMsg GUARDED_BY(cs_vSend);
|
std::deque<std::vector<unsigned char>> vSendMsg GUARDED_BY(cs_vSend);
|
||||||
CCriticalSection cs_vSend;
|
CCriticalSection cs_vSend;
|
||||||
CCriticalSection cs_hSocket;
|
CCriticalSection cs_hSocket;
|
||||||
|
@ -652,52 +652,52 @@ public:
|
||||||
|
|
||||||
CCriticalSection cs_vProcessMsg;
|
CCriticalSection cs_vProcessMsg;
|
||||||
std::list<CNetMessage> vProcessMsg GUARDED_BY(cs_vProcessMsg);
|
std::list<CNetMessage> vProcessMsg GUARDED_BY(cs_vProcessMsg);
|
||||||
size_t nProcessQueueSize;
|
size_t nProcessQueueSize{0};
|
||||||
|
|
||||||
CCriticalSection cs_sendProcessing;
|
CCriticalSection cs_sendProcessing;
|
||||||
|
|
||||||
std::deque<CInv> vRecvGetData;
|
std::deque<CInv> vRecvGetData;
|
||||||
uint64_t nRecvBytes GUARDED_BY(cs_vRecv);
|
uint64_t nRecvBytes GUARDED_BY(cs_vRecv){0};
|
||||||
std::atomic<int> nRecvVersion;
|
std::atomic<int> nRecvVersion{INIT_PROTO_VERSION};
|
||||||
|
|
||||||
std::atomic<int64_t> nLastSend;
|
std::atomic<int64_t> nLastSend{0};
|
||||||
std::atomic<int64_t> nLastRecv;
|
std::atomic<int64_t> nLastRecv{0};
|
||||||
const int64_t nTimeConnected;
|
const int64_t nTimeConnected;
|
||||||
std::atomic<int64_t> nTimeOffset;
|
std::atomic<int64_t> nTimeOffset{0};
|
||||||
// Address of this peer
|
// Address of this peer
|
||||||
const CAddress addr;
|
const CAddress addr;
|
||||||
// Bind address of our side of the connection
|
// Bind address of our side of the connection
|
||||||
const CAddress addrBind;
|
const CAddress addrBind;
|
||||||
std::atomic<int> nVersion;
|
std::atomic<int> nVersion{0};
|
||||||
// strSubVer is whatever byte array we read from the wire. However, this field is intended
|
// strSubVer is whatever byte array we read from the wire. However, this field is intended
|
||||||
// to be printed out, displayed to humans in various forms and so on. So we sanitize it and
|
// to be printed out, displayed to humans in various forms and so on. So we sanitize it and
|
||||||
// store the sanitized version in cleanSubVer. The original should be used when dealing with
|
// store the sanitized version in cleanSubVer. The original should be used when dealing with
|
||||||
// the network or wire types and the cleaned string used when displayed or logged.
|
// the network or wire types and the cleaned string used when displayed or logged.
|
||||||
std::string strSubVer GUARDED_BY(cs_SubVer), cleanSubVer GUARDED_BY(cs_SubVer);
|
std::string strSubVer GUARDED_BY(cs_SubVer), cleanSubVer GUARDED_BY(cs_SubVer);
|
||||||
CCriticalSection cs_SubVer; // used for both cleanSubVer and strSubVer
|
CCriticalSection cs_SubVer; // used for both cleanSubVer and strSubVer
|
||||||
bool fWhitelisted; // This peer can bypass DoS banning.
|
bool fWhitelisted{false}; // This peer can bypass DoS banning.
|
||||||
bool fFeeler; // If true this node is being used as a short lived feeler.
|
bool fFeeler{false}; // If true this node is being used as a short lived feeler.
|
||||||
bool fOneShot;
|
bool fOneShot{false};
|
||||||
bool m_manual_connection;
|
bool m_manual_connection{false};
|
||||||
bool fClient;
|
bool fClient{false}; // set by version message
|
||||||
bool m_limited_node; //after BIP159
|
bool m_limited_node{false}; //after BIP159, set by version message
|
||||||
const bool fInbound;
|
const bool fInbound;
|
||||||
std::atomic_bool fSuccessfullyConnected;
|
std::atomic_bool fSuccessfullyConnected{false};
|
||||||
std::atomic_bool fDisconnect;
|
std::atomic_bool fDisconnect{false};
|
||||||
// We use fRelayTxes for two purposes -
|
// We use fRelayTxes for two purposes -
|
||||||
// a) it allows us to not relay tx invs before receiving the peer's version message
|
// a) it allows us to not relay tx invs before receiving the peer's version message
|
||||||
// b) the peer may tell us in its version message that we should not relay tx invs
|
// b) the peer may tell us in its version message that we should not relay tx invs
|
||||||
// unless it loads a bloom filter.
|
// unless it loads a bloom filter.
|
||||||
bool fRelayTxes GUARDED_BY(cs_filter);
|
bool fRelayTxes GUARDED_BY(cs_filter){false};
|
||||||
bool fSentAddr;
|
bool fSentAddr{false};
|
||||||
CSemaphoreGrant grantOutbound;
|
CSemaphoreGrant grantOutbound;
|
||||||
mutable CCriticalSection cs_filter;
|
mutable CCriticalSection cs_filter;
|
||||||
std::unique_ptr<CBloomFilter> pfilter PT_GUARDED_BY(cs_filter);
|
std::unique_ptr<CBloomFilter> pfilter PT_GUARDED_BY(cs_filter);
|
||||||
std::atomic<int> nRefCount;
|
std::atomic<int> nRefCount{0};
|
||||||
|
|
||||||
const uint64_t nKeyedNetGroup;
|
const uint64_t nKeyedNetGroup;
|
||||||
std::atomic_bool fPauseRecv;
|
std::atomic_bool fPauseRecv{false};
|
||||||
std::atomic_bool fPauseSend;
|
std::atomic_bool fPauseSend{false};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
mapMsgCmdSize mapSendBytesPerMsgCmd;
|
mapMsgCmdSize mapSendBytesPerMsgCmd;
|
||||||
|
@ -705,15 +705,15 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
uint256 hashContinue;
|
uint256 hashContinue;
|
||||||
std::atomic<int> nStartingHeight;
|
std::atomic<int> nStartingHeight{-1};
|
||||||
|
|
||||||
// flood relay
|
// flood relay
|
||||||
std::vector<CAddress> vAddrToSend;
|
std::vector<CAddress> vAddrToSend;
|
||||||
CRollingBloomFilter addrKnown;
|
CRollingBloomFilter addrKnown;
|
||||||
bool fGetAddr;
|
bool fGetAddr{false};
|
||||||
std::set<uint256> setKnown;
|
std::set<uint256> setKnown;
|
||||||
int64_t nNextAddrSend GUARDED_BY(cs_sendProcessing);
|
int64_t nNextAddrSend GUARDED_BY(cs_sendProcessing){0};
|
||||||
int64_t nNextLocalAddrSend GUARDED_BY(cs_sendProcessing);
|
int64_t nNextLocalAddrSend GUARDED_BY(cs_sendProcessing){0};
|
||||||
|
|
||||||
// inventory based relay
|
// inventory based relay
|
||||||
CRollingBloomFilter filterInventoryKnown GUARDED_BY(cs_inventory);
|
CRollingBloomFilter filterInventoryKnown GUARDED_BY(cs_inventory);
|
||||||
|
@ -727,35 +727,35 @@ public:
|
||||||
CCriticalSection cs_inventory;
|
CCriticalSection cs_inventory;
|
||||||
std::set<uint256> setAskFor;
|
std::set<uint256> setAskFor;
|
||||||
std::multimap<int64_t, CInv> mapAskFor;
|
std::multimap<int64_t, CInv> mapAskFor;
|
||||||
int64_t nNextInvSend;
|
int64_t nNextInvSend{0};
|
||||||
// Used for headers announcements - unfiltered blocks to relay
|
// Used for headers announcements - unfiltered blocks to relay
|
||||||
std::vector<uint256> vBlockHashesToAnnounce GUARDED_BY(cs_inventory);
|
std::vector<uint256> vBlockHashesToAnnounce GUARDED_BY(cs_inventory);
|
||||||
// Used for BIP35 mempool sending
|
// Used for BIP35 mempool sending
|
||||||
bool fSendMempool GUARDED_BY(cs_inventory);
|
bool fSendMempool GUARDED_BY(cs_inventory){false};
|
||||||
|
|
||||||
// Last time a "MEMPOOL" request was serviced.
|
// Last time a "MEMPOOL" request was serviced.
|
||||||
std::atomic<int64_t> timeLastMempoolReq;
|
std::atomic<int64_t> timeLastMempoolReq{0};
|
||||||
|
|
||||||
// Block and TXN accept times
|
// Block and TXN accept times
|
||||||
std::atomic<int64_t> nLastBlockTime;
|
std::atomic<int64_t> nLastBlockTime{0};
|
||||||
std::atomic<int64_t> nLastTXTime;
|
std::atomic<int64_t> nLastTXTime{0};
|
||||||
|
|
||||||
// Ping time measurement:
|
// Ping time measurement:
|
||||||
// The pong reply we're expecting, or 0 if no pong expected.
|
// The pong reply we're expecting, or 0 if no pong expected.
|
||||||
std::atomic<uint64_t> nPingNonceSent;
|
std::atomic<uint64_t> nPingNonceSent{0};
|
||||||
// Time (in usec) the last ping was sent, or 0 if no ping was ever sent.
|
// Time (in usec) the last ping was sent, or 0 if no ping was ever sent.
|
||||||
std::atomic<int64_t> nPingUsecStart;
|
std::atomic<int64_t> nPingUsecStart{0};
|
||||||
// Last measured round-trip time.
|
// Last measured round-trip time.
|
||||||
std::atomic<int64_t> nPingUsecTime;
|
std::atomic<int64_t> nPingUsecTime{0};
|
||||||
// Best measured round-trip time.
|
// Best measured round-trip time.
|
||||||
std::atomic<int64_t> nMinPingUsecTime;
|
std::atomic<int64_t> nMinPingUsecTime{std::numeric_limits<int64_t>::max()};
|
||||||
// Whether a ping is requested.
|
// Whether a ping is requested.
|
||||||
std::atomic<bool> fPingQueued;
|
std::atomic<bool> fPingQueued{false};
|
||||||
// Minimum fee rate with which to filter inv's to this node
|
// Minimum fee rate with which to filter inv's to this node
|
||||||
CAmount minFeeFilter GUARDED_BY(cs_feeFilter);
|
CAmount minFeeFilter GUARDED_BY(cs_feeFilter){0};
|
||||||
CCriticalSection cs_feeFilter;
|
CCriticalSection cs_feeFilter;
|
||||||
CAmount lastSentFeeFilter;
|
CAmount lastSentFeeFilter{0};
|
||||||
int64_t nextSendTimeFeeFilter;
|
int64_t nextSendTimeFeeFilter{0};
|
||||||
|
|
||||||
CNode(NodeId id, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string &addrNameIn = "", bool fInboundIn = false);
|
CNode(NodeId id, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn, SOCKET hSocketIn, const CAddress &addrIn, uint64_t nKeyedNetGroupIn, uint64_t nLocalHostNonceIn, const CAddress &addrBindIn, const std::string &addrNameIn = "", bool fInboundIn = false);
|
||||||
~CNode();
|
~CNode();
|
||||||
|
@ -768,7 +768,7 @@ private:
|
||||||
// Services offered to this peer
|
// Services offered to this peer
|
||||||
const ServiceFlags nLocalServices;
|
const ServiceFlags nLocalServices;
|
||||||
const int nMyStartingHeight;
|
const int nMyStartingHeight;
|
||||||
int nSendVersion;
|
int nSendVersion{0};
|
||||||
std::list<CNetMessage> vRecvMsg; // Used only by SocketHandler thread
|
std::list<CNetMessage> vRecvMsg; // Used only by SocketHandler thread
|
||||||
|
|
||||||
mutable CCriticalSection cs_addrName;
|
mutable CCriticalSection cs_addrName;
|
||||||
|
|
Loading…
Reference in a new issue