Skip to content

Commit dff3fbf

Browse files
committed
Move height data into signals
1 parent 7113ee0 commit dff3fbf

File tree

6 files changed

+8
-5
lines changed

6 files changed

+8
-5
lines changed

divi/src/Node.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -989,8 +989,9 @@ bool CNode::DisconnectOldProtocol(int nVersionRequired, std::string strLastComma
989989
return IsFlaggedForDisconnection();
990990
}
991991

992-
void CNode::PushVersion(int currentChainTipHeight)
992+
void CNode::PushVersion()
993993
{
994+
const int currentChainTipHeight = *(nodeSignals_->GetHeight());
994995
/// when NTP implemented, change to just nTime = GetAdjustedTime()
995996
int64_t nTime = (fInbound ? GetAdjustedTime() : GetTime());
996997
CAddress addrYou = (addr.IsRoutable() && !IsProxy(addr) ? addr : CAddress(CService("0.0.0.0", 0)));

divi/src/Node.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ class CNode
345345
void PushInventory(const CInv& inv);
346346
void AskFor(const CInv& inv);
347347

348-
void PushVersion(int currentChainTipHeight);
348+
void PushVersion();
349349
void SetSporkCount(int nSporkCountIn);
350350
bool AreSporksSynced() const;
351351

divi/src/NodeSignals.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class CNodeState;
77
// Signals for message handling
88
class CNode;
99
struct CNodeSignals {
10+
boost::signals2::signal<int()> GetHeight;
1011
boost::signals2::signal<void(CNodeState&)> InitializeNode;
1112
boost::signals2::signal<void(NodeId)> FinalizeNode;
1213
boost::signals2::signal<bool(CNode*)> ProcessReceivedMessages;

divi/src/main.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ static bool SetPeerVersionAndServices(CCriticalSection& mainCriticalSection, CNo
405405

406406
// Be shy and don't send version until we hear
407407
if (pfrom->fInbound)
408-
pfrom->PushVersion(GetHeight());
408+
pfrom->PushVersion();
409409

410410
pfrom->fClient = !(pfrom->GetServices() & NODE_NETWORK);
411411

@@ -1327,6 +1327,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
13271327
void RegisterNodeSignals()
13281328
{
13291329
CNodeSignals& nodeSignals = GetNodeSignals();
1330+
nodeSignals.GetHeight.connect(&GetHeight);
13301331
nodeSignals.InitializeNode.connect(&InitializeNode);
13311332
nodeSignals.FinalizeNode.connect(&FinalizeNode);
13321333
nodeSignals.ProcessReceivedMessages.connect(&ProcessReceivedMessages);
@@ -1338,6 +1339,7 @@ void RegisterNodeSignals()
13381339
void UnregisterNodeSignals()
13391340
{
13401341
CNodeSignals& nodeSignals = GetNodeSignals();
1342+
nodeSignals.GetHeight.disconnect(&GetHeight);
13411343
nodeSignals.InitializeNode.disconnect(&InitializeNode);
13421344
nodeSignals.FinalizeNode.disconnect(&FinalizeNode);
13431345
nodeSignals.ProcessReceivedMessages.disconnect(&ProcessReceivedMessages);

divi/src/main.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#endif
1414
class CNodeSignals;
1515
/** Get Current Chain Height with acquired lock **/
16-
int GetHeight();
1716
void RegisterNodeSignals();
1817
void UnregisterNodeSignals();
1918
CNodeSignals& GetNodeSignals();

divi/src/net.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ CNode* CreateNode(SOCKET socket, Args&&... args)
317317
NodeWithSocket* nodeWithSocket = new NodeWithSocket(socket,std::forward<Args>(args)...);
318318
CNode* pnode = nodeWithSocket->node();
319319
if (pnode->CommunicationChannelIsValid() && !pnode->fInbound)
320-
pnode->PushVersion(GetHeight());
320+
pnode->PushVersion();
321321

322322
NodeManager::Instance().recordNode(nodeWithSocket);
323323
return pnode;

0 commit comments

Comments
 (0)