mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-26 13:35:50 +00:00
Compare commits
1 Commits
revert-sel
...
fix-ips-fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aee8087042 |
@@ -484,44 +484,61 @@ OverlayImpl::start()
|
|||||||
m_peerFinder->setConfig(config);
|
m_peerFinder->setConfig(config);
|
||||||
m_peerFinder->start();
|
m_peerFinder->start();
|
||||||
|
|
||||||
auto addIps = [&](std::vector<std::string> bootstrapIps) -> void {
|
auto addIps = [this](std::vector<std::string> ips, bool fixed) {
|
||||||
beast::Journal const& j = app_.journal("Overlay");
|
beast::Journal const& j = app_.journal("Overlay");
|
||||||
for (auto& ip : bootstrapIps)
|
for (auto& ip : ips)
|
||||||
{
|
{
|
||||||
std::size_t pos = ip.find('#');
|
std::size_t pos = ip.find('#');
|
||||||
if (pos != std::string::npos)
|
if (pos != std::string::npos)
|
||||||
ip.erase(pos);
|
ip.erase(pos);
|
||||||
|
|
||||||
JLOG(j.trace()) << "Found boostrap IP: " << ip;
|
JLOG(j.trace())
|
||||||
|
<< "Found " << (fixed ? "fixed" : "bootstrap") << " IP: " << ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_resolver.resolve(
|
m_resolver.resolve(
|
||||||
bootstrapIps,
|
ips,
|
||||||
[&](std::string const& name,
|
[this, fixed](
|
||||||
|
std::string const& name,
|
||||||
std::vector<beast::IP::Endpoint> const& addresses) {
|
std::vector<beast::IP::Endpoint> const& addresses) {
|
||||||
std::vector<std::string> ips;
|
|
||||||
ips.reserve(addresses.size());
|
|
||||||
beast::Journal const& j = app_.journal("Overlay");
|
beast::Journal const& j = app_.journal("Overlay");
|
||||||
|
std::string const base("config: ");
|
||||||
|
|
||||||
|
std::vector<beast::IP::Endpoint> eps;
|
||||||
|
eps.reserve(addresses.size());
|
||||||
for (auto const& addr : addresses)
|
for (auto const& addr : addresses)
|
||||||
{
|
{
|
||||||
std::string addrStr = addr.port() == 0
|
auto ep = addr.port() == 0 ? addr.at_port(DEFAULT_PEER_PORT)
|
||||||
? to_string(addr.at_port(DEFAULT_PEER_PORT))
|
: addr;
|
||||||
: to_string(addr);
|
JLOG(j.trace())
|
||||||
JLOG(j.trace()) << "Parsed boostrap IP: " << addrStr;
|
<< "Parsed " << (fixed ? "fixed" : "bootstrap")
|
||||||
ips.push_back(addrStr);
|
<< " IP: " << ep;
|
||||||
|
eps.push_back(ep);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string const base("config: ");
|
if (eps.empty())
|
||||||
if (!ips.empty())
|
return;
|
||||||
m_peerFinder->addFallbackStrings(base + name, ips);
|
|
||||||
|
if (fixed)
|
||||||
|
{
|
||||||
|
m_peerFinder->addFixedPeer(base + name, eps);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::vector<std::string> strs;
|
||||||
|
strs.reserve(eps.size());
|
||||||
|
for (auto const& ep : eps)
|
||||||
|
strs.push_back(to_string(ep));
|
||||||
|
m_peerFinder->addFallbackStrings(base + name, strs);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!app_.config().IPS.empty())
|
if (!app_.config().IPS.empty())
|
||||||
addIps(app_.config().IPS);
|
addIps(app_.config().IPS, false);
|
||||||
|
|
||||||
if (!app_.config().IPS_FIXED.empty())
|
if (!app_.config().IPS_FIXED.empty())
|
||||||
addIps(app_.config().IPS_FIXED);
|
addIps(app_.config().IPS_FIXED, true);
|
||||||
|
|
||||||
auto const timer = std::make_shared<Timer>(*this);
|
auto const timer = std::make_shared<Timer>(*this);
|
||||||
std::lock_guard lock(mutex_);
|
std::lock_guard lock(mutex_);
|
||||||
|
|||||||
Reference in New Issue
Block a user