aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp12
-rw-r--r--src/net.cpp2
2 files changed, 8 insertions, 6 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 60374c0408..f0e5183e98 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -2107,7 +2107,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
if (!pfrom->fInbound)
{
// Advertise our address
- if (addrLocalHost.IsRoutable() && !fUseProxy)
+ if (!fNoListen && !fUseProxy && addrLocalHost.IsRoutable() &&
+ !IsInitialBlockDownload())
{
CAddress addr(addrLocalHost);
addr.nTime = GetAdjustedTime();
@@ -2703,18 +2704,18 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
// Address refresh broadcast
static int64 nLastRebroadcast;
- if (GetTime() - nLastRebroadcast > 24 * 60 * 60)
+ if (!IsInitialBlockDownload() && (GetTime() - nLastRebroadcast > 24 * 60 * 60))
{
- nLastRebroadcast = GetTime();
CRITICAL_BLOCK(cs_vNodes)
{
BOOST_FOREACH(CNode* pnode, vNodes)
{
// Periodically clear setAddrKnown to allow refresh broadcasts
- pnode->setAddrKnown.clear();
+ if (nLastRebroadcast)
+ pnode->setAddrKnown.clear();
// Rebroadcast our address
- if (addrLocalHost.IsRoutable() && !fUseProxy)
+ if (!fNoListen && !fUseProxy && addrLocalHost.IsRoutable())
{
CAddress addr(addrLocalHost);
addr.nTime = GetAdjustedTime();
@@ -2722,6 +2723,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
}
}
}
+ nLastRebroadcast = GetTime();
}
// Clear out old addresses periodically so it's not too much work at once
diff --git a/src/net.cpp b/src/net.cpp
index 66c9218cd0..a7eaaaceb6 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -141,7 +141,7 @@ bool GetMyExternalIP(CNetAddr& ipRet)
const char* pszGet;
const char* pszKeyword;
- if (fUseProxy)
+ if (fNoListen||fUseProxy)
return false;
for (int nLookup = 0; nLookup <= 1; nLookup++)