From d0f1eadba9ae7c6b2f789eab7eb7543e94652670 Mon Sep 17 00:00:00 2001 From: Huang-Ming Huang Date: Fri, 31 Mar 2017 13:35:24 -0500 Subject: Another attempt to fix PR #382 #385 --- ACE/ace/INET_Addr.cpp | 3 +++ ACE/tests/INET_Addr_Test.cpp | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp index a9b3649142d..d3073c88257 100644 --- a/ACE/ace/INET_Addr.cpp +++ b/ACE/ace/INET_Addr.cpp @@ -371,6 +371,9 @@ ACE_INET_Addr::set (u_short port_number, #endif /* ACE_HAS_IPV6 && ACE_USES_IPV4_IPV6_MIGRATION */ #ifdef ACE_HAS_IPV6 + if (address_family == AF_UNSPEC && ACE::ipv6_enabled ()) + address_family = AF_INET6; + if (address_family != AF_INET && ACE_OS::inet_pton (AF_INET6, host_name, &this->inet_addr_.in6_.sin6_addr) == 1) diff --git a/ACE/tests/INET_Addr_Test.cpp b/ACE/tests/INET_Addr_Test.cpp index 816c2eb2b7d..6b389470032 100644 --- a/ACE/tests/INET_Addr_Test.cpp +++ b/ACE/tests/INET_Addr_Test.cpp @@ -390,14 +390,17 @@ int run_main (int, ACE_TCHAR *[]) { ACE_INET_Addr addr; int old_type = addr.get_type(); - addr.set(12345, ACE_TEXT ("localhost")); - if (addr.get_type() != old_type) { - ACE_ERROR ((LM_ERROR, - ACE_TEXT ("IPv6 set failed: before addr.set(12345), addr.type() = %d\n") - ACE_TEXT (" after addr.set(12345), addr.type() = %d\n"), - old_type, - addr.get_type ())); - status = 1; + if (addr.set(12345, ACE_TEXT ("localhost")) == 0) { + if (addr.get_type() != old_type) { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("IPv6 set failed: addr.set(12345, \"localhost\"), old addr.type() = %d, new addr_type()= %d\n"), + old_type, + addr.get_type ())); + status = 1; + } + } + else { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("IPv6 set failed: addr.set(12345, \"localhost\") returns nonzero\n"))); } } -- cgit v1.2.1