diff --git a/libretroshare/src/services/p3discovery2.cc b/libretroshare/src/services/p3discovery2.cc index 67177948c..094599cbe 100644 --- a/libretroshare/src/services/p3discovery2.cc +++ b/libretroshare/src/services/p3discovery2.cc @@ -62,9 +62,16 @@ bool populateContactInfo(const peerState &detail, RsDiscContactItem *pkt) pkt->isHidden = false; pkt->localAddrV4.addr = detail.localaddr; + if(!sockaddr_storage_ipv6_to_ipv4(pkt->localAddrV4.addr)) sockaddr_storage_clear(pkt->localAddrV4.addr); + pkt->extAddrV4.addr = detail.serveraddr; - sockaddr_storage_clear(pkt->localAddrV6.addr); - sockaddr_storage_clear(pkt->extAddrV6.addr); + if(!sockaddr_storage_ipv6_to_ipv4(pkt->extAddrV4.addr)) sockaddr_storage_clear(pkt->extAddrV4.addr); + + pkt->localAddrV6.addr = detail.localaddr; + if (!sockaddr_storage_ipv4_to_ipv6(pkt->localAddrV6.addr)) sockaddr_storage_clear(pkt->localAddrV6.addr); + + pkt->extAddrV6.addr = detail.serveraddr; + if(!sockaddr_storage_ipv4_to_ipv6(pkt->extAddrV6.addr)) sockaddr_storage_clear(pkt->extAddrV6.addr); pkt->dyndns = detail.dyndns; detail.ipAddrs.mLocal.loadTlv(pkt->localAddrList); diff --git a/libretroshare/src/util/rsnet_ss.cc b/libretroshare/src/util/rsnet_ss.cc index d5f700e44..a1f50d060 100644 --- a/libretroshare/src/util/rsnet_ss.cc +++ b/libretroshare/src/util/rsnet_ss.cc @@ -304,9 +304,9 @@ bool sockaddr_storage_ipv4_to_ipv6(sockaddr_storage &addr) bool sockaddr_storage_ipv6_to_ipv4(sockaddr_storage &addr) { -//#ifdef SS_DEBUG +#ifdef SS_DEBUG std::cerr << "sockaddr_storage_ipv6_to_ipv4(sockaddr_storage &addr)" << std::endl; -//#endif +#endif if ( addr.ss_family == AF_INET ) return true; @@ -801,8 +801,9 @@ bool sockaddr_storage_ipv6_lessthan(const struct sockaddr_storage &addr, const s bool sockaddr_storage_ipv6_same(const struct sockaddr_storage &addr, const struct sockaddr_storage &addr2) { - std::cerr << "sockaddr_storage_ipv6_same()"; - std::cerr << std::endl; +#ifdef SS_DEBUG + std::cerr << "sockaddr_storage_ipv6_same()" << std::endl; +#endif const struct sockaddr_in6 *ptr1 = to_const_ipv6_ptr(addr); const struct sockaddr_in6 *ptr2 = to_const_ipv6_ptr(addr2);