diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2006-04-27 14:22:45 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2006-04-27 14:22:45 +0000 |
commit | 4cfdb2da6d75b909a9914fe37ed28bb89cd16d5a (patch) | |
tree | 73f8cd9780b81e38c1628e1785617258d235d968 | |
parent | 7e2b8bc78a4c3c7cf02ed45e8f9febd11a4ae7cc (diff) | |
download | ATCD-4cfdb2da6d75b909a9914fe37ed28bb89cd16d5a.tar.gz |
ChangeLog tag: Thu Apr 27 14:20:02 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
-rw-r--r-- | TAO/ChangeLog | 8 | ||||
-rw-r--r-- | TAO/tao/IIOP_Endpoint.cpp | 9 | ||||
-rw-r--r-- | TAO/tao/PortableServer/POAManagerFactory.cpp | 2 |
3 files changed, 16 insertions, 3 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index fa080e7a020..2d7083bdb4e 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,11 @@ +Thu Apr 27 14:20:02 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com> + + * tao/IIOP_Endpoint.cpp: + Fixed a recursion problem with the IPv6 endpoint selection. + + * tao/PortableServer/POAManagerFactory.cpp: + Cleaned up compiler warnings. + Thu Apr 27 06:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> * tests/ORB_Local_Config/lib/lib.mpc: diff --git a/TAO/tao/IIOP_Endpoint.cpp b/TAO/tao/IIOP_Endpoint.cpp index ac13a05101a..f72f3999629 100644 --- a/TAO/tao/IIOP_Endpoint.cpp +++ b/TAO/tao/IIOP_Endpoint.cpp @@ -250,7 +250,7 @@ TAO_IIOP_Endpoint::next_filtered (TAO_ORB_Core * orb_core, TAO_Endpoint *root) bool ipv6_only = false; bool prefer_ipv6 = false; #if defined (ACE_HAS_IPV6) - want_ipv6 = 1; + want_ipv6 = true; ipv6_only = orb_core->orb_params()->connect_ipv6_only(); prefer_ipv6 = orb_core->orb_params()->prefer_ipv6_interfaces(); #else @@ -269,7 +269,12 @@ TAO_IIOP_Endpoint::next_filtered_i (TAO_IIOP_Endpoint *root, bool prefer_ipv6, bool want_ipv6) { + // the candidate is nominally the next entry in the list, but since + // the list may loop back on itself, the root of the list needs to be + // initialized. TAO_IIOP_Endpoint *candidate = (root == 0) ? this : next_; + if (root == 0) + root = this; #if defined (ACE_HAS_IPV6) if (ipv6_only) @@ -287,7 +292,7 @@ TAO_IIOP_Endpoint::next_filtered_i (TAO_IIOP_Endpoint *root, { if (candidate == 0) return !want_ipv6 ? candidate : - candidate->next_filtered_i(root, ipv6_only, prefer_ipv6, false); + root->next_filtered_i(root, ipv6_only, prefer_ipv6, false); if (want_ipv6 == candidate->is_ipv6_decimal()) return candidate; diff --git a/TAO/tao/PortableServer/POAManagerFactory.cpp b/TAO/tao/PortableServer/POAManagerFactory.cpp index 3a697f1bdb6..25d6b0bdc28 100644 --- a/TAO/tao/PortableServer/POAManagerFactory.cpp +++ b/TAO/tao/PortableServer/POAManagerFactory.cpp @@ -57,7 +57,7 @@ TAO_POAManager_Factory::create_POAManager ( ACE_CHECK_RETURN (::PortableServer::POAManager::_nil ()); // If we already have a manager with the same name throw an exception - if (!CORBA::is_nil (poamanager)) + if (!CORBA::is_nil (poamanager.in())) { ACE_THROW_RETURN ( ::PortableServer::POAManagerFactory::ManagerAlreadyExists (), |