From 54a946ee80111c6a62c711b7629b5b84f54faddc Mon Sep 17 00:00:00 2001 From: Leonardo Murillo Date: Mon, 25 Mar 2013 15:54:08 -0600 Subject: [PATCH] Splitting line, adding agentId to copy constructor and swap --- domain/src/main.cpp | 7 ++++++- shared/src/Agent.cpp | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/domain/src/main.cpp b/domain/src/main.cpp index fad3f21130..940ec5f578 100644 --- a/domain/src/main.cpp +++ b/domain/src/main.cpp @@ -84,8 +84,13 @@ int main(int argc, const char * argv[]) agentType = packetData[0]; unpackSocket(&packetData[1], (sockaddr *)&agentLocalAddress); - if (agentList.addOrUpdateAgent((sockaddr *)&agentPublicAddress, (sockaddr *)&agentLocalAddress, agentType, agentList.getLastAgentId())) { + if (agentList.addOrUpdateAgent((sockaddr *)&agentPublicAddress, + (sockaddr *)&agentLocalAddress, + agentType, + agentList.getLastAgentId())) { + agentList.increaseAgentId(); + } currentBufferPos = broadcastPacket + 1; diff --git a/shared/src/Agent.cpp b/shared/src/Agent.cpp index b95c3e7dbd..9b64fc26e1 100644 --- a/shared/src/Agent.cpp +++ b/shared/src/Agent.cpp @@ -43,6 +43,9 @@ Agent::Agent(const Agent &otherAgent) { localSocket = new sockaddr; memcpy(localSocket, otherAgent.localSocket, sizeof(sockaddr)); + agentId = *new uint16_t; + memcpy(&agentId, &otherAgent.agentId, sizeof(uint16_t)); + if (otherAgent.activeSocket == otherAgent.publicSocket) { activeSocket = publicSocket; } else if (otherAgent.activeSocket == otherAgent.localSocket) { @@ -153,6 +156,7 @@ void Agent::swap(Agent &first, Agent &second) { swap(first.activeSocket, second.activeSocket); swap(first.type, second.type); swap(first.linkedData, second.linkedData); + swap(first.agentId, second.agentId); } bool Agent::matches(sockaddr *otherPublicSocket, sockaddr *otherLocalSocket, char otherAgentType) {