diff options
author | Steve Huston <shuston@riverace.com> | 2017-03-30 13:18:10 -0400 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2017-03-30 16:48:29 -0400 |
commit | a138322c8154ab32634839ffec7c04a38886d459 (patch) | |
tree | 2a185a296d6993b7cc83cf8250e0733fe641a8b3 | |
parent | 1ba8d16b35572416afebe6ee710b564c67cbbc05 (diff) | |
download | ATCD-a138322c8154ab32634839ffec7c04a38886d459.tar.gz |
Fix ability to request IPv4 address from ACE_INET_Addr::set
-rw-r--r-- | ACE/ace/INET_Addr.cpp | 3 | ||||
-rw-r--r-- | ACE/tests/INET_Addr_Test_IPV6.cpp | 25 |
2 files changed, 26 insertions, 2 deletions
diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp index bb42bdfefbc..5bd1105af5e 100644 --- a/ACE/ace/INET_Addr.cpp +++ b/ACE/ace/INET_Addr.cpp @@ -500,6 +500,9 @@ ACE_INET_Addr::set (const char port_name[], } int address_family = PF_UNSPEC; + if (ACE_OS::strcmp(protocol, "tcp") == 0) + address_family = AF_INET; + # if defined (ACE_HAS_IPV6) if (ACE_OS::strcmp (protocol, "tcp6") == 0) address_family = AF_INET6; diff --git a/ACE/tests/INET_Addr_Test_IPV6.cpp b/ACE/tests/INET_Addr_Test_IPV6.cpp index 7ea9ac1cd60..049c98ad88c 100644 --- a/ACE/tests/INET_Addr_Test_IPV6.cpp +++ b/ACE/tests/INET_Addr_Test_IPV6.cpp @@ -58,11 +58,11 @@ static bool check_both_families() { bool good = true; ACE_INET_Addr a; - if (-1 == a.set(ACE_TEXT (""), ACE_TEXT ("facebook.com"), ACE_TEXT ("tcp"))) + if (-1 == a.set(ACE_TEXT (""), ACE_TEXT ("www.google.com"), ACE_TEXT ("tcp"))) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), - ACE_TEXT ("both test, facebook.com"))); + ACE_TEXT ("both test 4, www.google.com"))); good = false; } else @@ -79,6 +79,27 @@ static bool check_both_families() } } + ACE_INET_Addr b; + if (-1 == b.set(ACE_TEXT(""), ACE_TEXT("www.google.com"), ACE_TEXT("tcp6"))) + { + ACE_ERROR((LM_ERROR, + ACE_TEXT("%p\n"), + ACE_TEXT("both test 6, www.google.com"))); + good = false; + } + else + { + ACE_TCHAR str[1000]; + b.addr_to_string(str, 1000, 1); + ACE_DEBUG((LM_DEBUG, ACE_TEXT("got type %d, addr %s\n"), b.get_type(), str)); + // Should have selected IPv6. + if (b.get_type() != AF_INET6) + { + ACE_ERROR((LM_ERROR, + ACE_TEXT("Wrong address family, expecting IPv6\n"))); + good = false; + } + } return good; } |