mirror of
https://github.com/overte-org/overte.git
synced 2025-07-23 07:44:09 +02:00
Add guard against unpermitted requests to the entity script server
This commit is contained in:
parent
7fc946f598
commit
3ac44e3a1c
1 changed files with 25 additions and 21 deletions
|
@ -62,34 +62,38 @@ EntityScriptServer::EntityScriptServer(ReceivedMessage& message) : ThreadedAssig
|
||||||
static const QString ENTITY_SCRIPT_SERVER_LOGGING_NAME = "entity-script-server";
|
static const QString ENTITY_SCRIPT_SERVER_LOGGING_NAME = "entity-script-server";
|
||||||
|
|
||||||
void EntityScriptServer::handleReloadEntityServerScriptPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
|
void EntityScriptServer::handleReloadEntityServerScriptPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
|
||||||
auto entityID = QUuid::fromRfc4122(message->read(NUM_BYTES_RFC4122_UUID));
|
if (senderNode->getCanRez() || senderNode->getCanRezTmp()) {
|
||||||
|
auto entityID = QUuid::fromRfc4122(message->read(NUM_BYTES_RFC4122_UUID));
|
||||||
|
|
||||||
if (_entityViewer.getTree() && !_shuttingDown) {
|
if (_entityViewer.getTree() && !_shuttingDown) {
|
||||||
qDebug() << "Reloading: " << entityID;
|
qDebug() << "Reloading: " << entityID;
|
||||||
_entitiesScriptEngine->unloadEntityScript(entityID);
|
_entitiesScriptEngine->unloadEntityScript(entityID);
|
||||||
checkAndCallPreload(entityID, true);
|
checkAndCallPreload(entityID, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityScriptServer::handleEntityScriptGetStatusPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
|
void EntityScriptServer::handleEntityScriptGetStatusPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
|
||||||
MessageID messageID;
|
if (senderNode->getCanRez() || senderNode->getCanRezTmp()) {
|
||||||
message->readPrimitive(&messageID);
|
MessageID messageID;
|
||||||
auto entityID = QUuid::fromRfc4122(message->read(UUID_LENGTH_BYTES));
|
message->readPrimitive(&messageID);
|
||||||
|
auto entityID = QUuid::fromRfc4122(message->read(NUM_BYTES_RFC4122_UUID));
|
||||||
auto replyPacketList = NLPacketList::create(PacketType::EntityScriptGetStatusReply, QByteArray(), true, true);
|
|
||||||
replyPacketList->writePrimitive(messageID);
|
|
||||||
|
|
||||||
EntityScriptDetails details;
|
auto replyPacketList = NLPacketList::create(PacketType::EntityScriptGetStatusReply, QByteArray(), true, true);
|
||||||
if (_entitiesScriptEngine->getEntityScriptDetails(entityID, details)) {
|
replyPacketList->writePrimitive(messageID);
|
||||||
replyPacketList->writePrimitive(true);
|
|
||||||
replyPacketList->writePrimitive(details.status);
|
EntityScriptDetails details;
|
||||||
replyPacketList->writeString(details.errorInfo);
|
if (_entitiesScriptEngine->getEntityScriptDetails(entityID, details)) {
|
||||||
} else {
|
replyPacketList->writePrimitive(true);
|
||||||
replyPacketList->writePrimitive(false);
|
replyPacketList->writePrimitive(details.status);
|
||||||
|
replyPacketList->writeString(details.errorInfo);
|
||||||
|
} else {
|
||||||
|
replyPacketList->writePrimitive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
nodeList->sendPacketList(std::move(replyPacketList), *senderNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
|
||||||
nodeList->sendPacketList(std::move(replyPacketList), *senderNode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityScriptServer::run() {
|
void EntityScriptServer::run() {
|
||||||
|
|
Loading…
Reference in a new issue