mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 16:38:27 +02:00
handle disconnect request in domain-server
This commit is contained in:
parent
8bdb81d832
commit
1c9396d66e
5 changed files with 15 additions and 4 deletions
|
@ -272,6 +272,7 @@ void DomainServer::setupNodeListAndAssignments(const QUuid& sessionUUID) {
|
||||||
packetReceiver.registerListener(PacketType::DomainListRequest, this, "processListRequestPacket");
|
packetReceiver.registerListener(PacketType::DomainListRequest, this, "processListRequestPacket");
|
||||||
packetReceiver.registerListener(PacketType::DomainServerPathQuery, this, "processPathQueryPacket");
|
packetReceiver.registerListener(PacketType::DomainServerPathQuery, this, "processPathQueryPacket");
|
||||||
packetReceiver.registerMessageListener(PacketType::NodeJsonStats, this, "processNodeJSONStatsPacket");
|
packetReceiver.registerMessageListener(PacketType::NodeJsonStats, this, "processNodeJSONStatsPacket");
|
||||||
|
packetReceiver.registerListener(PacketType::DomainDisconnectRequest, this, "processNodeDisconnectRequestPacket");
|
||||||
|
|
||||||
// NodeList won't be available to the settings manager when it is created, so call registerListener here
|
// NodeList won't be available to the settings manager when it is created, so call registerListener here
|
||||||
packetReceiver.registerListener(PacketType::DomainSettingsRequest, &_settingsManager, "processSettingsRequestPacket");
|
packetReceiver.registerListener(PacketType::DomainSettingsRequest, &_settingsManager, "processSettingsRequestPacket");
|
||||||
|
@ -1826,3 +1827,12 @@ void DomainServer::processPathQueryPacket(QSharedPointer<NLPacket> packet) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DomainServer::processNodeDisconnectRequestPacket(QSharedPointer<NLPacket> packet) {
|
||||||
|
// This packet has been matched to a source node and they're asking not to be in the domain anymore
|
||||||
|
auto limitedNodeList = DependencyManager::get<LimitedNodeList>();
|
||||||
|
|
||||||
|
qDebug() << "Received a disconnect request from node with UUID" << packet->getSourceID();
|
||||||
|
|
||||||
|
limitedNodeList->killNodeWithUUID(packet->getSourceID());
|
||||||
|
}
|
||||||
|
|
|
@ -60,7 +60,8 @@ public slots:
|
||||||
void processListRequestPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
|
void processListRequestPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
|
||||||
void processNodeJSONStatsPacket(QSharedPointer<NLPacketList> packetList, SharedNodePointer sendingNode);
|
void processNodeJSONStatsPacket(QSharedPointer<NLPacketList> packetList, SharedNodePointer sendingNode);
|
||||||
void processPathQueryPacket(QSharedPointer<NLPacket> packet);
|
void processPathQueryPacket(QSharedPointer<NLPacket> packet);
|
||||||
|
void processNodeDisconnectRequestPacket(QSharedPointer<NLPacket> packet);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void aboutToQuit();
|
void aboutToQuit();
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ void DomainHandler::sendDisconnectPacket() {
|
||||||
// domain-server connection to stop greifing here
|
// domain-server connection to stop greifing here
|
||||||
|
|
||||||
// construct the disconnect packet once (an empty packet but sourced with our current session UUID)
|
// construct the disconnect packet once (an empty packet but sourced with our current session UUID)
|
||||||
static auto disconnectPacket = NLPacket::create(PacketType::DomainDisconnect, 0);
|
static auto disconnectPacket = NLPacket::create(PacketType::DomainDisconnectRequest, 0);
|
||||||
|
|
||||||
// send the disconnect packet to the current domain server
|
// send the disconnect packet to the current domain server
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
|
|
@ -20,7 +20,7 @@ const QSet<PacketType> NON_VERIFIED_PACKETS = QSet<PacketType>()
|
||||||
<< PacketType::NodeJsonStats << PacketType::EntityQuery
|
<< PacketType::NodeJsonStats << PacketType::EntityQuery
|
||||||
<< PacketType::OctreeDataNack << PacketType::EntityEditNack
|
<< PacketType::OctreeDataNack << PacketType::EntityEditNack
|
||||||
<< PacketType::DomainListRequest << PacketType::StopNode
|
<< PacketType::DomainListRequest << PacketType::StopNode
|
||||||
<< PacketType::DomainDisconnect;
|
<< PacketType::DomainDisconnectRequest;
|
||||||
|
|
||||||
const QSet<PacketType> NON_SOURCED_PACKETS = QSet<PacketType>()
|
const QSet<PacketType> NON_SOURCED_PACKETS = QSet<PacketType>()
|
||||||
<< PacketType::StunResponse << PacketType::CreateAssignment << PacketType::RequestAssignment
|
<< PacketType::StunResponse << PacketType::CreateAssignment << PacketType::RequestAssignment
|
||||||
|
|
|
@ -86,7 +86,7 @@ public:
|
||||||
AssetUploadReply,
|
AssetUploadReply,
|
||||||
AssetGetInfo,
|
AssetGetInfo,
|
||||||
AssetGetInfoReply,
|
AssetGetInfoReply,
|
||||||
DomainDisconnect,
|
DomainDisconnectRequest,
|
||||||
DomainServerRemovedNode
|
DomainServerRemovedNode
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue