summaryrefslogtreecommitdiff
path: root/cppe/src
diff options
context:
space:
mode:
Diffstat (limited to 'cppe/src')
-rw-r--r--cppe/src/IceE/Endpoint.h7
-rw-r--r--cppe/src/IceE/EndpointFactory.h2
-rw-r--r--cppe/src/IceE/ObjectAdapter.cpp4
-rw-r--r--cppe/src/IceE/ReferenceFactory.cpp6
-rw-r--r--cppe/src/IceE/UnknownEndpoint.cpp18
-rw-r--r--cppe/src/IceE/UnknownEndpoint.h2
-rw-r--r--cppe/src/TcpTransport/EndpointFactory.cpp4
-rw-r--r--cppe/src/TcpTransport/TcpEndpoint.cpp42
-rw-r--r--cppe/src/TcpTransport/TcpEndpoint.h4
9 files changed, 42 insertions, 47 deletions
diff --git a/cppe/src/IceE/Endpoint.h b/cppe/src/IceE/Endpoint.h
index b7200e67cfb..6f8a07638e6 100644
--- a/cppe/src/IceE/Endpoint.h
+++ b/cppe/src/IceE/Endpoint.h
@@ -83,12 +83,9 @@ public:
//
// Expand endpoint out in to separate endpoints for each local
- // host if endpoint was configured with no host set. This
- // only applies for ObjectAdapter endpoints.
+ // host if endpoint was configured with no host set.
//
-#ifndef ICEE_PURE_CLIENT
- virtual std::vector<EndpointPtr> expand() const = 0;
-#endif
+ virtual std::vector<EndpointPtr> expand(bool) const = 0;
//
// Return whether the endpoint should be published in proxies
diff --git a/cppe/src/IceE/EndpointFactory.h b/cppe/src/IceE/EndpointFactory.h
index 850b99b815b..e816f71ea0f 100644
--- a/cppe/src/IceE/EndpointFactory.h
+++ b/cppe/src/IceE/EndpointFactory.h
@@ -26,7 +26,7 @@ public:
~EndpointFactory();
- EndpointPtr create(const std::string&, bool) const;
+ EndpointPtr create(const std::string&) const;
EndpointPtr read(BasicStream*) const;
void destroy();
diff --git a/cppe/src/IceE/ObjectAdapter.cpp b/cppe/src/IceE/ObjectAdapter.cpp
index bc6b5c22b98..2b7ba3a8574 100644
--- a/cppe/src/IceE/ObjectAdapter.cpp
+++ b/cppe/src/IceE/ObjectAdapter.cpp
@@ -910,14 +910,14 @@ Ice::ObjectAdapter::parseEndpoints(const string& str) const
}
string s = endpts.substr(beg, end - beg);
- EndpointPtr endp = _instance->endpointFactory()->create(s, true);
+ EndpointPtr endp = _instance->endpointFactory()->create(s);
if(endp == 0)
{
EndpointParseException ex(__FILE__, __LINE__);
ex.str = s;
throw ex;
}
- vector<EndpointPtr> endps = endp->expand();
+ vector<EndpointPtr> endps = endp->expand(true);
endpoints.insert(endpoints.end(), endps.begin(), endps.end());
++end;
diff --git a/cppe/src/IceE/ReferenceFactory.cpp b/cppe/src/IceE/ReferenceFactory.cpp
index f35ae9b0528..729a3736603 100644
--- a/cppe/src/IceE/ReferenceFactory.cpp
+++ b/cppe/src/IceE/ReferenceFactory.cpp
@@ -11,6 +11,7 @@
#include <IceE/LocalException.h>
#include <IceE/Instance.h>
#include <IceE/IdentityUtil.h>
+#include <IceE/Endpoint.h>
#include <IceE/EndpointFactory.h>
#ifdef ICEE_HAS_ROUTER
# include <IceE/RouterInfo.h>
@@ -461,10 +462,11 @@ IceInternal::ReferenceFactory::create(const string& str)
}
string es = s.substr(beg, end - beg);
- EndpointPtr endp = _instance->endpointFactory()->create(es, false);
+ EndpointPtr endp = _instance->endpointFactory()->create(es);
if(endp != 0)
{
- endpoints.push_back(endp);
+ vector<EndpointPtr> endps = endp->expand(false);
+ endpoints.insert(endpoints.end(), endps.begin(), endps.end());
}
else
{
diff --git a/cppe/src/IceE/UnknownEndpoint.cpp b/cppe/src/IceE/UnknownEndpoint.cpp
index 69f9c08aa55..db2d88b109f 100644
--- a/cppe/src/IceE/UnknownEndpoint.cpp
+++ b/cppe/src/IceE/UnknownEndpoint.cpp
@@ -79,15 +79,6 @@ IceInternal::UnknownEndpoint::acceptor(EndpointPtr& endp) const
return 0;
}
-vector<EndpointPtr>
-IceInternal::UnknownEndpoint::expand() const
-{
- assert(false);
- vector<EndpointPtr> ret;
- return ret;
-
-}
-
bool
IceInternal::UnknownEndpoint::publish() const
{
@@ -96,6 +87,15 @@ IceInternal::UnknownEndpoint::publish() const
#endif
+vector<EndpointPtr>
+IceInternal::UnknownEndpoint::expand(bool includeLoopback) const
+{
+ assert(false);
+ vector<EndpointPtr> ret;
+ return ret;
+
+}
+
bool
IceInternal::UnknownEndpoint::equivalent(const TransceiverPtr&) const
{
diff --git a/cppe/src/IceE/UnknownEndpoint.h b/cppe/src/IceE/UnknownEndpoint.h
index bf1c5e93eb2..4f43aaf6247 100644
--- a/cppe/src/IceE/UnknownEndpoint.h
+++ b/cppe/src/IceE/UnknownEndpoint.h
@@ -30,9 +30,9 @@ public:
virtual ConnectorPtr connector() const;
#ifndef ICEE_PURE_CLIENT
virtual AcceptorPtr acceptor(EndpointPtr&) const;
- virtual std::vector<EndpointPtr> expand() const;
virtual bool publish() const;
#endif
+ virtual std::vector<EndpointPtr> expand(bool) const;
virtual bool equivalent(const TransceiverPtr&) const;
#ifndef ICEE_PURE_CLIENT
virtual bool equivalent(const AcceptorPtr&) const;
diff --git a/cppe/src/TcpTransport/EndpointFactory.cpp b/cppe/src/TcpTransport/EndpointFactory.cpp
index 9e44b23af9f..11b09c7227e 100644
--- a/cppe/src/TcpTransport/EndpointFactory.cpp
+++ b/cppe/src/TcpTransport/EndpointFactory.cpp
@@ -30,7 +30,7 @@ IceInternal::EndpointFactory::~EndpointFactory()
}
EndpointPtr
-IceInternal::EndpointFactory::create(const std::string& str, bool adapterEndp) const
+IceInternal::EndpointFactory::create(const std::string& str) const
{
const string delim = " \t\n\r";
@@ -52,7 +52,7 @@ IceInternal::EndpointFactory::create(const std::string& str, bool adapterEndp) c
if(protocol == "default" || protocol == "tcp")
{
- return new TcpEndpoint(_instance, str.substr(end), adapterEndp);
+ return new TcpEndpoint(_instance, str.substr(end));
}
return 0;
diff --git a/cppe/src/TcpTransport/TcpEndpoint.cpp b/cppe/src/TcpTransport/TcpEndpoint.cpp
index 96f6caf1cb0..85f6ef4d556 100644
--- a/cppe/src/TcpTransport/TcpEndpoint.cpp
+++ b/cppe/src/TcpTransport/TcpEndpoint.cpp
@@ -33,7 +33,7 @@ IceInternal::TcpEndpoint::TcpEndpoint(const InstancePtr& instance, const string&
{
}
-IceInternal::TcpEndpoint::TcpEndpoint(const InstancePtr& instance, const string& str, bool adapterEndp) :
+IceInternal::TcpEndpoint::TcpEndpoint(const InstancePtr& instance, const string& str) :
_instance(instance),
_port(0),
_timeout(-1),
@@ -137,17 +137,10 @@ IceInternal::TcpEndpoint::TcpEndpoint(const InstancePtr& instance, const string&
const_cast<string&>(_host) = _instance->defaultsAndOverrides()->defaultHost;
if(_host.empty())
{
- if(adapterEndp)
- {
- const_cast<string&>(_host) = "0.0.0.0";
- }
- else
- {
- const_cast<string&>(_host) = getLocalHost(true);
- }
+ const_cast<string&>(_host) = "0.0.0.0";
}
}
- else if(_host == "*" && adapterEndp)
+ else if(_host == "*")
{
const_cast<string&>(_host) = "0.0.0.0";
}
@@ -355,18 +348,8 @@ IceInternal::TcpEndpoint::operator<(const Endpoint& r) const
return false;
}
-#ifndef ICEE_PURE_CLIENT
-
-AcceptorPtr
-IceInternal::TcpEndpoint::acceptor(EndpointPtr& endp) const
-{
- Acceptor* p = new Acceptor(_instance, _host, _port);
- endp = new TcpEndpoint(_instance, _host, p->effectivePort(), _timeout, _publish);
- return p;
-}
-
vector<EndpointPtr>
-IceInternal::TcpEndpoint::expand() const
+IceInternal::TcpEndpoint::expand(bool includeLoopback) const
{
vector<EndpointPtr> endps;
if(_host == "0.0.0.0")
@@ -374,8 +357,11 @@ IceInternal::TcpEndpoint::expand() const
vector<string> hosts = getLocalHosts();
for(unsigned int i = 0; i < hosts.size(); ++i)
{
- endps.push_back(new TcpEndpoint(_instance, hosts[i], _port, _timeout,
- hosts.size() == 1 || hosts[i] != "127.0.0.1"));
+ if(includeLoopback || hosts.size() == 1 || hosts[i] != "127.0.0.1")
+ {
+ endps.push_back(new TcpEndpoint(_instance, hosts[i], _port, _timeout,
+ hosts.size() == 1 || hosts[i] != "127.0.0.1"));
+ }
}
}
else
@@ -385,6 +371,16 @@ IceInternal::TcpEndpoint::expand() const
return endps;
}
+#ifndef ICEE_PURE_CLIENT
+
+AcceptorPtr
+IceInternal::TcpEndpoint::acceptor(EndpointPtr& endp) const
+{
+ Acceptor* p = new Acceptor(_instance, _host, _port);
+ endp = new TcpEndpoint(_instance, _host, p->effectivePort(), _timeout, _publish);
+ return p;
+}
+
bool
IceInternal::TcpEndpoint::publish() const
{
diff --git a/cppe/src/TcpTransport/TcpEndpoint.h b/cppe/src/TcpTransport/TcpEndpoint.h
index dd2760e62e4..0904855e1fe 100644
--- a/cppe/src/TcpTransport/TcpEndpoint.h
+++ b/cppe/src/TcpTransport/TcpEndpoint.h
@@ -22,7 +22,7 @@ class TcpEndpoint : public IceInternal::Endpoint
public:
TcpEndpoint(const InstancePtr&, const std::string&, Ice::Int, Ice::Int, bool);
- TcpEndpoint(const InstancePtr&, const std::string&, bool);
+ TcpEndpoint(const InstancePtr&, const std::string&);
TcpEndpoint(BasicStream*);
virtual void streamWrite(BasicStream*) const;
@@ -34,9 +34,9 @@ public:
virtual ConnectorPtr connector() const;
#ifndef ICEE_PURE_CLIENT
virtual AcceptorPtr acceptor(EndpointPtr&) const;
- virtual std::vector<EndpointPtr> expand() const;
virtual bool publish() const;
#endif
+ virtual std::vector<EndpointPtr> expand(bool) const;
virtual bool equivalent(const TransceiverPtr&) const;
#ifndef ICEE_PURE_CLIENT
virtual bool equivalent(const AcceptorPtr&) const;