mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 18:50:00 +02:00
Fix removing all downstream nodes in settings not killing nodes
This commit is contained in:
parent
8f154321a4
commit
330a27b3a0
1 changed files with 14 additions and 15 deletions
|
@ -2227,11 +2227,12 @@ static const QString REPLICATION_SETTINGS_KEY = "replication";
|
||||||
void DomainServer::updateDownstreamNodes() {
|
void DomainServer::updateDownstreamNodes() {
|
||||||
auto settings = _settingsManager.getSettingsMap();
|
auto settings = _settingsManager.getSettingsMap();
|
||||||
if (settings.contains(REPLICATION_SETTINGS_KEY)) {
|
if (settings.contains(REPLICATION_SETTINGS_KEY)) {
|
||||||
|
auto nodeList = DependencyManager::get<LimitedNodeList>();
|
||||||
|
std::vector<HifiSockAddr> downstreamNodesInSettings;
|
||||||
auto replicationSettings = settings.value(REPLICATION_SETTINGS_KEY).toMap();
|
auto replicationSettings = settings.value(REPLICATION_SETTINGS_KEY).toMap();
|
||||||
if (replicationSettings.contains("downstream_servers")) {
|
if (replicationSettings.contains("downstream_servers")) {
|
||||||
auto serversSettings = replicationSettings.value("downstream_servers").toList();
|
auto serversSettings = replicationSettings.value("downstream_servers").toList();
|
||||||
|
|
||||||
auto nodeList = DependencyManager::get<LimitedNodeList>();
|
|
||||||
std::vector<HifiSockAddr> knownDownstreamNodes;
|
std::vector<HifiSockAddr> knownDownstreamNodes;
|
||||||
nodeList->eachNode([&](const SharedNodePointer& otherNode) {
|
nodeList->eachNode([&](const SharedNodePointer& otherNode) {
|
||||||
if (NodeType::isDownstream(otherNode->getType())) {
|
if (NodeType::isDownstream(otherNode->getType())) {
|
||||||
|
@ -2239,8 +2240,6 @@ void DomainServer::updateDownstreamNodes() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
std::vector<HifiSockAddr> downstreamNodesInSettings;
|
|
||||||
|
|
||||||
for (auto& server : serversSettings) {
|
for (auto& server : serversSettings) {
|
||||||
auto downstreamServer = server.toMap();
|
auto downstreamServer = server.toMap();
|
||||||
|
|
||||||
|
@ -2277,20 +2276,20 @@ void DomainServer::updateDownstreamNodes() {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
std::vector<SharedNodePointer> nodesToKill;
|
}
|
||||||
nodeList->eachNode([&](const SharedNodePointer& otherNode) {
|
std::vector<SharedNodePointer> nodesToKill;
|
||||||
if (NodeType::isDownstream(otherNode->getType())) {
|
nodeList->eachNode([&](const SharedNodePointer& otherNode) {
|
||||||
bool nodeInSettings = find(downstreamNodesInSettings.cbegin(), downstreamNodesInSettings.cend(),
|
if (NodeType::isDownstream(otherNode->getType())) {
|
||||||
otherNode->getPublicSocket()) != downstreamNodesInSettings.cend();
|
bool nodeInSettings = find(downstreamNodesInSettings.cbegin(), downstreamNodesInSettings.cend(),
|
||||||
if (!nodeInSettings) {
|
otherNode->getPublicSocket()) != downstreamNodesInSettings.cend();
|
||||||
qDebug() << "Removing downstream node:" << otherNode->getUUID() << otherNode->getPublicSocket();
|
if (!nodeInSettings) {
|
||||||
nodesToKill.push_back(otherNode);
|
qDebug() << "Removing downstream node:" << otherNode->getUUID() << otherNode->getPublicSocket();
|
||||||
}
|
nodesToKill.push_back(otherNode);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
for (auto& node : nodesToKill) {
|
|
||||||
handleKillNode(node);
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
for (auto& node : nodesToKill) {
|
||||||
|
handleKillNode(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue