summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2001-07-12 01:29:15 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2001-07-12 01:29:15 +0000
commit43d664b3886d40693d5a33789621e8d49a5b2cfa (patch)
tree1402b459d399192ef332575b1ff7c0160ec0efcf
parentd34a56e49a606072eb577f1294ff79b5ffb622c0 (diff)
downloadATCD-43d664b3886d40693d5a33789621e8d49a5b2cfa.tar.gz
ChangeLogTag:Wed Jul 11 18:00:13 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a16
-rw-r--r--TAO/tao/Invocation_Endpoint_Selectors.cpp40
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);