From 24faab2089fb66b447b49d3781be292860d47ada Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 26 Aug 2015 09:29:15 -0700 Subject: [PATCH] Add sendPacketList that take Node --- libraries/networking/src/LimitedNodeList.cpp | 14 ++++++++++++++ libraries/networking/src/LimitedNodeList.h | 1 + 2 files changed, 15 insertions(+) diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index b45a37d002..4dd1a2399d 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -32,6 +32,7 @@ #include "HifiSockAddr.h" #include "UUID.h" #include "NetworkLogging.h" +#include "udt/Packet.h" const char SOLO_NODE_TYPES[2] = { NodeType::AvatarMixer, @@ -344,6 +345,19 @@ qint64 LimitedNodeList::sendPacketList(std::unique_ptr packetList, return _nodeSocket.writePacketList(std::move(packetList), sockAddr); } +qint64 LimitedNodeList::sendPacketList(std::unique_ptr packetList, const Node& destinationNode) { + // close the last packet in the list + packetList->closeCurrentPacket(); + + for (std::unique_ptr& packet : packetList->_packets) { + NLPacket* nlPacket = static_cast(packet.get()); + collectPacketStats(*nlPacket); + fillPacketHeader(*nlPacket, destinationNode.getConnectionSecret()); + } + + return _nodeSocket.writePacketList(std::move(packetList), *destinationNode.getActiveSocket()); +} + qint64 LimitedNodeList::sendPacket(std::unique_ptr packet, const Node& destinationNode, const HifiSockAddr& overridenSockAddr) { // use the node's active socket as the destination socket if there is no overriden socket address diff --git a/libraries/networking/src/LimitedNodeList.h b/libraries/networking/src/LimitedNodeList.h index 5f3e40fe11..1e94492e93 100644 --- a/libraries/networking/src/LimitedNodeList.h +++ b/libraries/networking/src/LimitedNodeList.h @@ -128,6 +128,7 @@ public: qint64 sendPacketList(NLPacketList& packetList, const HifiSockAddr& sockAddr, const QUuid& connectionSecret = QUuid()); qint64 sendPacketList(std::unique_ptr packetList, const HifiSockAddr& sockAddr); + qint64 sendPacketList(std::unique_ptr packetList, const Node& destinationNode); void (*linkedDataCreateCallback)(Node *);