diff options
-rw-r--r-- | ACE/ace/INET_Addr.cpp | 3 | ||||
-rw-r--r-- | 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 5d63d19880f..811ee79afc6 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"))); } } |