diff --git a/libretroshare/src/services/p3discovery2.cc b/libretroshare/src/services/p3discovery2.cc index 094599cbe..f96378c6a 100644 --- a/libretroshare/src/services/p3discovery2.cc +++ b/libretroshare/src/services/p3discovery2.cc @@ -434,8 +434,16 @@ void p3discovery2::updatePeerAddresses(const RsDiscContactItem *item) } else { - mPeerMgr->setLocalAddress(item->sslId, item->localAddrV4.addr); - mPeerMgr->setExtAddress(item->sslId, item->extAddrV4.addr); + if(!sockaddr_storage_isnull(item->localAddrV6.addr)) + mPeerMgr->setLocalAddress(item->sslId, item->localAddrV6.addr); + else + mPeerMgr->setLocalAddress(item->sslId, item->localAddrV4.addr); + + if(!sockaddr_storage_isnull(item->extAddrV6.addr)) + mPeerMgr->setExtAddress(item->sslId, item->extAddrV6.addr); + else + mPeerMgr->setExtAddress(item->sslId, item->extAddrV4.addr); + mPeerMgr->setDynDNS(item->sslId, item->dyndns); updatePeerAddressList(item);