So we need to keep track of external surface per reporter, since some NATs assign different external IPs for each external destination. Keeping just one known surface could create a race condition.

This commit is contained in:
Adam Ierymenko 2015-05-04 18:34:30 -07:00
parent 625ddf41a7
commit b4b067bf12
5 changed files with 92 additions and 45 deletions

View file

@ -273,7 +273,7 @@ bool IncomingPacket::_doHELLO(const RuntimeEnvironment *RR)
trusted = true;
}
if (destAddr)
RR->sa->iam(id.address(),_remoteAddress,destAddr,trusted);
RR->sa->iam(id.address(),_remoteAddress,destAddr,trusted,RR->node->now());
Packet outp(id.address(),RR->identity.address(),Packet::VERB_OK);
@ -358,7 +358,7 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,const SharedPtr<Peer> &p
trusted = true;
}
if (destAddr)
RR->sa->iam(peer->address(),_remoteAddress,destAddr,trusted);
RR->sa->iam(peer->address(),_remoteAddress,destAddr,trusted,RR->node->now());
} break;
case Packet::VERB_WHOIS: {