talk to AC on loopback when on same node

This commit is contained in:
Stephen Birarda 2013-09-12 16:47:06 -07:00
parent 0d69e1cce0
commit 2578516940
2 changed files with 7 additions and 2 deletions

View file

@ -190,7 +190,10 @@ int main(int argc, const char* argv[]) {
if (nodePublicAddress.sin_addr.s_addr == serverLocalAddress ||
nodePublicAddress.sin_addr.s_addr == htonl(INADDR_LOOPBACK)) {
nodePublicAddress.sin_addr.s_addr = 0;
destinationSocket = (sockaddr*) &nodeLocalAddress;
if (nodePublicAddress.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) {
destinationSocket = (sockaddr*) &nodeLocalAddress;
}
}
Node* newNode = nodeList->addOrUpdateNode((sockaddr*) &nodePublicAddress,

View file

@ -120,7 +120,9 @@ void NodeList::processNodeData(sockaddr* senderAddress, unsigned char* packetDat
sockaddr_in domainServerSocket = *(sockaddr_in*) senderAddress;
const char* domainSenderIP = inet_ntoa(domainServerSocket.sin_addr);
if (memcmp(domainSenderIP, _domainIP, strlen(domainSenderIP)) == 0) {
if (memcmp(domainSenderIP, _domainIP, strlen(domainSenderIP)) == 0
|| (inet_addr(_domainIP) == htonl(INADDR_LOOPBACK)
&& domainServerSocket.sin_addr.s_addr == getLocalAddress())) {
processDomainServerList(packetData, dataBytes);
}