diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-07-12 01:29:15 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-07-12 01:29:15 +0000 |
commit | 43d664b3886d40693d5a33789621e8d49a5b2cfa (patch) | |
tree | 1402b459d399192ef332575b1ff7c0160ec0efcf | |
parent | d34a56e49a606072eb577f1294ff79b5ffb622c0 (diff) | |
download | ATCD-43d664b3886d40693d5a33789621e8d49a5b2cfa.tar.gz |
ChangeLogTag:Wed Jul 11 18:00:13 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 16 | ||||
-rw-r--r-- | TAO/tao/Invocation_Endpoint_Selectors.cpp | 40 |
2 files changed, 41 insertions, 15 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index dffc09ec7c7..4714fa5e70d 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,19 @@ +Wed Jul 11 18:00:13 2001 Ossama Othman <ossama@uci.edu> + + * tao/Invocation_Endpoint_Selectors.cpp (select_endpoint): + + Applied patch from Wayne Erchak <werchak@stentor.com> that fixes + problem where the endpoint list in a given profile was not + iterated through during connection failures. "Fail-over" + semantics for a non-RTCORBA configure ORB once again work. + [Bug 927] + + * orbsvcs/orbsvcs/Security/EstablishTrustPolicy.h: + * orbsvcs/orbsvcs/Security/QOPPolicy.h: + + Added Doxygen comments for the TAO_QOPPolicy and + TAO_EstablishTrustPolicy classes. + Wed Jul 11 16:03:49 2001 Ossama Othman <ossama@uci.edu> * orbsvcs/orbsvcs/Security/EstablishTrustPolicy.h: diff --git a/TAO/tao/Invocation_Endpoint_Selectors.cpp b/TAO/tao/Invocation_Endpoint_Selectors.cpp index 1e9a83da328..b8b07ed3df0 100644 --- a/TAO/tao/Invocation_Endpoint_Selectors.cpp +++ b/TAO/tao/Invocation_Endpoint_Selectors.cpp @@ -1,4 +1,4 @@ -// $Id$ +// -*- C++ -*- #include "tao/Invocation_Endpoint_Selectors.h" @@ -12,7 +12,9 @@ #include "tao/Endpoint.h" #include "tao/Base_Transport_Property.h" -ACE_RCSID(tao, Invocation_Endpoint_Selectors, "$Id$") +ACE_RCSID (tao, + Invocation_Endpoint_Selectors, + "$Id$") TAO_Invocation_Endpoint_Selector::~TAO_Invocation_Endpoint_Selector (void) @@ -26,26 +28,34 @@ TAO_Default_Endpoint_Selector::~TAO_Default_Endpoint_Selector (void) } void -TAO_Default_Endpoint_Selector::select_endpoint (TAO_GIOP_Invocation *invocation, - CORBA::Environment &ACE_TRY_ENV) +TAO_Default_Endpoint_Selector::select_endpoint ( + TAO_GIOP_Invocation *invocation, + CORBA::Environment &ACE_TRY_ENV) { do { invocation->profile (invocation->stub ()->profile_in_use ()); invocation->endpoint (invocation->profile ()->endpoint ()); - // If known endpoint, select it. - if (invocation->endpoint () != 0) + size_t endpoint_count = invocation->profile ()->endpoint_count(); + for (size_t i = 0; i < endpoint_count; ++i) { - TAO_Base_Transport_Property default_desc (invocation->endpoint ()); - - int status = - invocation->perform_call (default_desc, ACE_TRY_ENV); - ACE_CHECK; - - // Check if the invocation has completed. - if (status == 1) - return; + // If known endpoint, select it. + if (invocation->endpoint () != 0) + { + TAO_Base_Transport_Property desc (invocation->endpoint ()); + + int status = + invocation->perform_call (desc, ACE_TRY_ENV); + ACE_CHECK; + + // Check if the invocation has completed. + if (status == 1) + return; + + // Go to the next endpoint in this profile. + invocation->endpoint (invocation->endpoint()->next()); + } } } while (invocation->stub ()->next_profile_retry () != 0); |