aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2016-04-21 13:46:36 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2016-04-21 13:48:13 +0200
commit7daa3adb242d9c8728fdb15c6af6596aaad5502f (patch)
treec8ab96faa549fd7ce0033de2bf2b8e4a4e7d5b70 /src/net.cpp
parent04a29373571d44be36bd099c3b3ec3cda89e99d1 (diff)
parentd39f5b425d8fc1bf3b7f33d35625ffd8d7a3cd77 (diff)
Merge #7868: net: Split DNS resolving functionality out of net structures
d39f5b4 net: disable resolving from storage structures (Cory Fields) 3675699 net: resolve outside of storage structures (Cory Fields) a98cd1f net: manually resolve dns seed sources (Cory Fields) e9fc71e net: require lookup functions to specify all arguments (Cory Fields)
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/net.cpp b/src/net.cpp
index f294e4c667..7dec8fc1cf 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1443,7 +1443,7 @@ void ThreadDNSAddressSeed()
} else {
vector<CNetAddr> vIPs;
vector<CAddress> vAdd;
- if (LookupHost(seed.host.c_str(), vIPs))
+ if (LookupHost(seed.host.c_str(), vIPs, 0, true))
{
BOOST_FOREACH(const CNetAddr& ip, vIPs)
{
@@ -1454,7 +1454,15 @@ void ThreadDNSAddressSeed()
found++;
}
}
- addrman.Add(vAdd, CNetAddr(seed.name, true));
+ // TODO: The seed name resolve may fail, yielding an IP of [::], which results in
+ // addrman assigning the same source to results from different seeds.
+ // This should switch to a hard-coded stable dummy IP for each seed name, so that the
+ // resolve is not required at all.
+ if (!vIPs.empty()) {
+ CService seedSource;
+ Lookup(seed.name.c_str(), seedSource, 0, true);
+ addrman.Add(vAdd, seedSource);
+ }
}
}
@@ -1884,7 +1892,7 @@ void static Discover(boost::thread_group& threadGroup)
if (gethostname(pszHostName, sizeof(pszHostName)) != SOCKET_ERROR)
{
vector<CNetAddr> vaddr;
- if (LookupHost(pszHostName, vaddr))
+ if (LookupHost(pszHostName, vaddr, 0, true))
{
BOOST_FOREACH (const CNetAddr &addr, vaddr)
{