From d37ae7da1b0478423cb6150de45b607bc77a154c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 10 Oct 2013 11:49:14 -0700 Subject: [PATCH] include the number of keys with data-server get --- interface/src/DataServerClient.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/interface/src/DataServerClient.cpp b/interface/src/DataServerClient.cpp index 6152914db5..7e64717236 100644 --- a/interface/src/DataServerClient.cpp +++ b/interface/src/DataServerClient.cpp @@ -68,7 +68,7 @@ void DataServerClient::getValuesForKeysAndUUID(const QStringList& keys, const QU } void DataServerClient::getValuesForKeysAndUserString(const QStringList& keys, const QString& userString) { - if (!userString.isEmpty()) { + if (!userString.isEmpty() && keys.size() <= UCHAR_MAX) { unsigned char* getPacket = new unsigned char[MAX_PACKET_SIZE]; // setup the header for this packet @@ -79,6 +79,9 @@ void DataServerClient::getValuesForKeysAndUserString(const QStringList& keys, co numPacketBytes += userString.toLocal8Bit().size(); getPacket[numPacketBytes++] = '\0'; + // pack one byte to designate the number of keys + getPacket[numPacketBytes++] = keys.size(); + for (int i = 0; i < keys.size(); ++i) { // pack the keys, null terminated strcpy((char*) getPacket + numPacketBytes, keys[i].toLocal8Bit().constData());