From ef7e7ae4c570e7f1b4818fab8aa0dd6dd13f4c5c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 22 Aug 2013 12:08:49 -0700 Subject: [PATCH] store senderSocket with assignment to be passed to requestor --- assignment-server/src/main.cpp | 5 ++++- domain-server/src/main.cpp | 1 + libraries/shared/src/Assignment.cpp | 6 ++++++ libraries/shared/src/Assignment.h | 3 +++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/assignment-server/src/main.cpp b/assignment-server/src/main.cpp index c0ce97adbd..9b5ba724c7 100644 --- a/assignment-server/src/main.cpp +++ b/assignment-server/src/main.cpp @@ -45,7 +45,10 @@ int main(int argc, const char* argv[]) { // send the assignment } } else if (senderData[0] == PACKET_TYPE_SEND_ASSIGNMENT && packetVersionMatch(senderData)) { - Assignment newAssignment((Assignment::Type) *(senderData + numBytesForPacketHeader(senderData))); + // assignment server is on a public server + // assume that the address we now have for the sender is the public address/port + // and store that with the assignment so it can be given to the requestor later + Assignment newAssignment((Assignment::Type) *(senderData + numBytesForPacketHeader(senderData)), senderSocket); qDebug() << "Received assignment of type " << newAssignment.getType() << "\n"; diff --git a/domain-server/src/main.cpp b/domain-server/src/main.cpp index 0fd495fdc1..29475c4594 100644 --- a/domain-server/src/main.cpp +++ b/domain-server/src/main.cpp @@ -90,6 +90,7 @@ int main(int argc, const char * argv[]) if (!nodeList->soloNodeOfType(NODE_TYPE_AUDIO_MIXER)) { // we don't have an audio mixer, and we know we need one // so tell that to the assignment server + Assignment mixerAssignment(Assignment::AudioMixer); nodeList->sendAssignment(mixerAssignment); } diff --git a/libraries/shared/src/Assignment.cpp b/libraries/shared/src/Assignment.cpp index a87a75935d..c235ce2bb3 100644 --- a/libraries/shared/src/Assignment.cpp +++ b/libraries/shared/src/Assignment.cpp @@ -10,4 +10,10 @@ Assignment::Assignment(Assignment::Type type) : _type(type) { +} + +Assignment::Assignment(Assignment::Type type, sockaddr_in& senderSocket) : + _type(type), + _senderSocket(senderSocket) { + } \ No newline at end of file diff --git a/libraries/shared/src/Assignment.h b/libraries/shared/src/Assignment.h index 53b237d327..46143f79b3 100644 --- a/libraries/shared/src/Assignment.h +++ b/libraries/shared/src/Assignment.h @@ -19,10 +19,13 @@ public: }; Assignment(Assignment::Type type); + Assignment(Assignment::Type type, sockaddr_in& senderSocket); Assignment::Type getType() const { return _type; } + private: Assignment::Type _type; + sockaddr_in _senderSocket; };