From 081a44dbff05d390473b280f60776b1b7b5203c1 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Mon, 15 Jul 2013 16:05:23 -0700 Subject: [PATCH] only process new domain list if it comes from current DS --- libraries/shared/src/NodeList.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/shared/src/NodeList.cpp b/libraries/shared/src/NodeList.cpp index 2e12e8ab71..6d79b9471a 100644 --- a/libraries/shared/src/NodeList.cpp +++ b/libraries/shared/src/NodeList.cpp @@ -112,7 +112,14 @@ void NodeList::timePingReply(sockaddr *nodeAddress, unsigned char *packetData) { void NodeList::processNodeData(sockaddr* senderAddress, unsigned char* packetData, size_t dataBytes) { switch (packetData[0]) { case PACKET_TYPE_DOMAIN: { - processDomainServerList(packetData, dataBytes); + // only process the DS if this is our current domain server + sockaddr_in domainServerSocket = *(sockaddr_in*) senderAddress; + const char* domainSenderIP = inet_ntoa(domainServerSocket.sin_addr); + + if (memcmp(domainSenderIP, _domainIP, strlen(domainSenderIP)) == 0) { + processDomainServerList(packetData, dataBytes); + } + break; } case PACKET_TYPE_PING: {