summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ReferenceFactory.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2007-06-04 03:49:34 +0000
committerMichi Henning <michi@zeroc.com>2007-06-04 03:49:34 +0000
commite73d9bbabb90d581e938ba54ead16debf13ac94b (patch)
tree1fa25124ba64494f851fc89c6d421a5ce1f9a830 /cpp/src/Ice/ReferenceFactory.cpp
parentfix member variable declaration in generated header (diff)
downloadice-e73d9bbabb90d581e938ba54ead16debf13ac94b.tar.bz2
ice-e73d9bbabb90d581e938ba54ead16debf13ac94b.tar.xz
ice-e73d9bbabb90d581e938ba54ead16debf13ac94b.zip
Bug 1597.
Diffstat (limited to 'cpp/src/Ice/ReferenceFactory.cpp')
-rw-r--r--cpp/src/Ice/ReferenceFactory.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/Ice/ReferenceFactory.cpp b/cpp/src/Ice/ReferenceFactory.cpp
index f84aff329c6..e296e3e32fc 100644
--- a/cpp/src/Ice/ReferenceFactory.cpp
+++ b/cpp/src/Ice/ReferenceFactory.cpp
@@ -616,8 +616,17 @@ IceInternal::ReferenceFactory::createFromProperties(const string& propertyPrefix
property = propertyPrefix + ".Router";
if(!properties->getProperty(property).empty())
{
- ref = ref->changeRouter(
- RouterPrx::uncheckedCast(_communicator->propertyToProxy(property)));
+ if(propertyPrefix.size() > 7 && propertyPrefix.substr(propertyPrefix.size() - 7, 7) == ".Router")
+ {
+ Warning out(_instance->initializationData().logger);
+ out << "`" << property << "=" << properties->getProperty(property)
+ << "': cannot set a router on a router; setting ignored";
+ }
+ else
+ {
+ ref = ref->changeRouter(
+ RouterPrx::uncheckedCast(_communicator->propertyToProxy(property)));
+ }
}
property = propertyPrefix + ".PreferSecure";