diff options
author | Steve Huston <shuston@riverace.com> | 2017-03-30 13:18:10 -0400 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2017-03-30 17:13:24 -0400 |
commit | f845e89108721bd313b9f3425d599284caa9d202 (patch) | |
tree | 13a83dec8ea20491247d6dc8567ea345fa2ae92b | |
parent | e5cb601f3d32162eda473033e84f1f8bfb28ce07 (diff) | |
download | ATCD-f845e89108721bd313b9f3425d599284caa9d202.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 cf25f94196e..038e585174f 100644 --- a/ACE/ace/INET_Addr.cpp +++ b/ACE/ace/INET_Addr.cpp @@ -511,6 +511,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 a3c37ce6412..dddeacd1302 100644 --- a/ACE/tests/INET_Addr_Test_IPV6.cpp +++ b/ACE/tests/INET_Addr_Test_IPV6.cpp @@ -56,11 +56,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 @@ -77,6 +77,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; } |