mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 14:29:03 +02:00
Update AssetServer to use PacketList
This commit is contained in:
parent
c1b9613a30
commit
85f80ff6f9
1 changed files with 22 additions and 15 deletions
|
@ -221,38 +221,45 @@ void AssetServer::handleAssetGet(QSharedPointer<NLPacket> packet, SharedNodePoin
|
||||||
_taskPool.start(task);
|
_taskPool.start(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AssetServer::handleAssetUpload(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) {
|
void AssetServer::handleAssetUpload(QSharedPointer<NLPacketList> packetList, SharedNodePointer senderNode) {
|
||||||
|
auto data = packetList->getMessage();
|
||||||
|
QBuffer buffer { &data };
|
||||||
|
buffer.open(QIODevice::ReadOnly);
|
||||||
|
|
||||||
MessageID messageID;
|
MessageID messageID;
|
||||||
packet->readPrimitive(&messageID);
|
buffer.read(reinterpret_cast<char*>(&messageID), sizeof(messageID));
|
||||||
|
// buffer.readPrimitive(&messageID);
|
||||||
|
|
||||||
char extensionLength;
|
uint8_t extensionLength;
|
||||||
packet->readPrimitive(&extensionLength);
|
buffer.read(reinterpret_cast<char*>(&extensionLength), sizeof(extensionLength));
|
||||||
|
// buffer.readPrimitive(&extensionLength);
|
||||||
|
|
||||||
char extension[extensionLength];
|
QByteArray extension = buffer.read(extensionLength);
|
||||||
packet->read(extension, extensionLength);
|
|
||||||
|
|
||||||
qDebug() << "Got extension: " << extension;
|
qDebug() << "Got extension: " << extension;
|
||||||
|
|
||||||
int fileSize;
|
uint64_t fileSize;
|
||||||
packet->readPrimitive(&fileSize);
|
buffer.read(reinterpret_cast<char*>(&fileSize), sizeof(fileSize));
|
||||||
|
// buffer.readPrimitive(&fileSize);
|
||||||
|
|
||||||
const int MAX_LENGTH = 1024;
|
// const uint64_t MAX_LENGTH = 1024;
|
||||||
fileSize = std::min(MAX_LENGTH, fileSize);
|
// fileSize = std::min(MAX_LENGTH, fileSize);
|
||||||
qDebug() << "Receiving a file of size " << fileSize;
|
qDebug() << "Receiving a file of size " << fileSize;
|
||||||
|
|
||||||
QByteArray data = packet->read(fileSize);
|
QByteArray fileData = buffer.read(fileSize);
|
||||||
|
|
||||||
QString hash = hashData(data);
|
QString hash = hashData(fileData);
|
||||||
|
|
||||||
qDebug() << "Got data: (" << hash << ") " << data;
|
qDebug() << "Got data: (" << hash << ") ";
|
||||||
|
|
||||||
QFile file { _resourcesDirectory.filePath(QString(hash)) };
|
QFile file { _resourcesDirectory.filePath(QString(hash)) }; //+ "." + QString(extension) };
|
||||||
|
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
qDebug() << "[WARNING] This file already exists";
|
qDebug() << "[WARNING] This file already exists";
|
||||||
} else {
|
} else {
|
||||||
file.open(QIODevice::WriteOnly);
|
file.open(QIODevice::WriteOnly);
|
||||||
file.write(data);
|
file.write(fileData);
|
||||||
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto replyPacket = NLPacket::create(PacketType::AssetUploadReply);
|
auto replyPacket = NLPacket::create(PacketType::AssetUploadReply);
|
||||||
|
|
Loading…
Reference in a new issue