Fix: ApiListener::SyncRelayMessage doesn't send message to all zone members

fixes #10365
This commit is contained in:
Gunnar Beutner 2015-10-15 09:28:20 +02:00
parent f89877cd28
commit 4f647527fd
1 changed files with 7 additions and 3 deletions

View File

@ -612,13 +612,17 @@ void ApiListener::SyncRelayMessage(const MessageOrigin::Ptr& origin,
}
/* don't relay messages to disconnected endpoints */
if (!endpoint->IsConnected())
if (!endpoint->IsConnected()) {
if (target_zone == my_zone)
finishedLogZones.erase(target_zone);
continue;
}
finishedLogZones.insert(target_zone);
/* don't relay the message to the zone through more than one endpoint */
if (finishedZones.find(target_zone) != finishedZones.end()) {
/* don't relay the message to the zone through more than one endpoint unless this is our own zone */
if (finishedZones.find(target_zone) != finishedZones.end() && target_zone != my_zone) {
skippedEndpoints.push_back(endpoint);
continue;
}