rebased patch 0011-p3PeerMgrIMPL-UpdateOwnAddress-put-all-local-address.patch to new IPv6 branch

git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-IPv6-2@8243 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2015-05-14 13:03:29 +00:00
parent 46d5527e1e
commit fe59bcdb83

View file

@ -965,7 +965,7 @@ void p3PeerMgrIMPL::printPeerLists(std::ostream &out)
* as it doesn't call back to there.
*/
bool p3PeerMgrIMPL::UpdateOwnAddress(const struct sockaddr_storage &localAddr, const struct sockaddr_storage &extAddr)
bool p3PeerMgrIMPL::UpdateOwnAddress(const struct sockaddr_storage &localAddr, const struct sockaddr_storage &extAddr)
{
#ifdef PEER_DEBUG
std::cerr << "p3PeerMgrIMPL::UpdateOwnAddress(";
@ -976,16 +976,25 @@ bool p3PeerMgrIMPL::UpdateOwnAddress(const struct sockaddr_storage &localAddr,
#endif
{
RsStackMutex stack(mPeerMtx); /****** STACK LOCK MUTEX *******/
//update ip address list
pqiIpAddress ipAddressTimed;
ipAddressTimed.mAddr = localAddr;
ipAddressTimed.mSeenTime = time(NULL);
ipAddressTimed.mSrc = 0 ;
mOwnState.ipAddrs.updateLocalAddrs(ipAddressTimed);
/****** STACK LOCK MUTEX *******/
RsStackMutex stack(mPeerMtx); (void)stack;
mOwnState.localaddr = localAddr;
// update ip address list
std::list<struct sockaddr_storage>::iterator it;
std::list<struct sockaddr_storage> lAddrs;
getLocalAddresses(lAddrs);
lAddrs.push_front(localAddr);
for ( it = lAddrs.begin(); it != lAddrs.end(); ++it)
{
pqiIpAddress ipAddressTimed;
ipAddressTimed.mAddr = *it;
sockaddr_storage_setport(ipAddressTimed.mAddr, sockaddr_storage_port(localAddr));
ipAddressTimed.mSeenTime = time(NULL);
ipAddressTimed.mSrc = 0 ;
mOwnState.ipAddrs.updateLocalAddrs(ipAddressTimed);
}
}