aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 234a5c5cd..636db2952 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -214,6 +214,9 @@ bool AddLocal(const CService& addr, int nScore)
if (!GetBoolArg("-discover", true) && nScore < LOCAL_MANUAL)
return false;
+ if (IsLimited(addr))
+ return false;
+
printf("AddLocal(%s,%i)\n", addr.ToString().c_str(), nScore);
{
@@ -242,14 +245,21 @@ bool AddLocal(const CNetAddr &addr, int nScore)
/** Make a particular network entirely off-limits (no automatic connects to it) */
void SetLimited(enum Network net, bool fLimited)
{
+ if (net == NET_UNROUTABLE)
+ return;
LOCK(cs_mapLocalHost);
vfLimited[net] = fLimited;
}
-bool IsLimited(const CNetAddr& addr)
+bool IsLimited(enum Network net)
{
LOCK(cs_mapLocalHost);
- return vfLimited[addr.GetNetwork()];
+ return vfLimited[net];
+}
+
+bool IsLimited(const CNetAddr &addr)
+{
+ return IsLimited(addr.GetNetwork());
}
/** vote for a local address */