diff --git a/libretroshare/src/services/p3discovery2.cc b/libretroshare/src/services/p3discovery2.cc index 4e9b85b99..ef3582924 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 997558883..12c9a855f 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; @@ -808,8 +808,7 @@ 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) { #ifdef SS_DEBUG - std::cerr << "sockaddr_storage_ipv6_same()"; - std::cerr << std::endl; + 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);