From 2849d80274d02e2b155866c8c9a7269cab5dc0e3 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 9 Sep 2015 10:39:53 -0700 Subject: [PATCH] use the exact payload size where possible --- libraries/networking/src/AssetClient.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/libraries/networking/src/AssetClient.cpp b/libraries/networking/src/AssetClient.cpp index 4c87da1b33..9931bab5ed 100644 --- a/libraries/networking/src/AssetClient.cpp +++ b/libraries/networking/src/AssetClient.cpp @@ -57,7 +57,8 @@ AssetRequest* AssetClient::createRequest(const QString& hash, const QString& ext SharedNodePointer assetServer = nodeList->soloNodeOfType(NodeType::AssetServer); if (!assetServer) { - qDebug().nospace() << "Could not request " << hash << "." << extension << " since you are not currently connected to an asset-server."; + qDebug().nospace() << "Could not request " << hash << "." << extension + << " since you are not currently connected to an asset-server."; return nullptr; } @@ -96,10 +97,13 @@ bool AssetClient::getAsset(const QString& hash, const QString& extension, DataOf SharedNodePointer assetServer = nodeList->soloNodeOfType(NodeType::AssetServer); if (assetServer) { - auto packet = NLPacket::create(PacketType::AssetGet, -1, true); - + auto messageID = ++_currentID; + auto payloadSize = sizeof(messageID) + SHA256_HASH_LENGTH + sizeof(uint8_t) + extension.length() + + sizeof(start) + sizeof(end); + auto packet = NLPacket::create(PacketType::AssetGet, payloadSize, true); + qDebug() << "Requesting data from" << start << "to" << end << "of" << hash << "from asset-server."; packet->writePrimitive(messageID); @@ -127,9 +131,11 @@ bool AssetClient::getAssetInfo(const QString& hash, const QString& extension, Ge SharedNodePointer assetServer = nodeList->soloNodeOfType(NodeType::AssetServer); if (assetServer) { - auto packet = NLPacket::create(PacketType::AssetGetInfo, -1, true); - auto messageID = ++_currentID; + + auto payloadSize = sizeof(messageID) + SHA256_HASH_LENGTH + sizeof(uint8_t) + extension.length(); + auto packet = NLPacket::create(PacketType::AssetGetInfo, payloadSize, true); + packet->writePrimitive(messageID); packet->write(QByteArray::fromHex(hash.toLatin1())); packet->writePrimitive(uint8_t(extension.length()));