diff options
Diffstat (limited to 'cpp/src/Ice/Proxy.cpp')
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 3f257907966..ff8842c07be 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -309,14 +309,6 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt) { ex.raise(); } - catch (const NoEndpointException&) - { - // - // We always retry on a no endpoint exception, as we might - // have a forwarded reference, but we retry with the original - // reference. - // - } catch (const CloseConnectionException&) { // @@ -407,7 +399,6 @@ Handle< ::IceDelegate::Ice::Object> IceProxy::Ice::Object::__getDelegate() { JTCSyncT<JTCMutex> sync(*this); - if (!_delegate) { ObjectPtr obj = _reference->instance->objectAdapterFactory()->proxyToObject(this); @@ -524,6 +515,7 @@ IceDelegateM::Ice::Object::setup(const ReferencePtr& reference) // upon initial initialization. // _reference = reference; + vector<EndpointPtr> endpoints; switch (_reference->mode) { @@ -532,7 +524,7 @@ IceDelegateM::Ice::Object::setup(const ReferencePtr& reference) case Reference::ModeBatchOneway: { remove_copy_if(_reference->endpoints.begin(), _reference->endpoints.end(), back_inserter(endpoints), - not1(::IceInternal::constMemFun(&Endpoint::regular))); + ::IceInternal::constMemFun(&Endpoint::datagram)); break; } @@ -551,6 +543,12 @@ IceDelegateM::Ice::Object::setup(const ReferencePtr& reference) not1(::IceInternal::constMemFun(&Endpoint::secure))), endpoints.end()); } + else + { + endpoints.erase(remove_if(endpoints.begin(), endpoints.end(), + ::IceInternal::constMemFun(&Endpoint::secure)), + endpoints.end()); + } if (endpoints.empty()) { |