ports/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp
Michael Gmelin 6e746d77d5 Fix icegridnode, so it applies property changes to shared communicators
correctly.

Without this fix, updates to icebox applications that use a shared
communicator will fail silently (unless specific trace properties
are set), which also stops other configuration changes to propagate
properly. This will also be escalated to upstream.

Approved by:	mentors (implicit)
2016-11-15 14:52:35 +00:00

26 lines
1.1 KiB
C++

--- cpp/src/IceGrid/ServerI.cpp.orig 2016-11-15 12:22:54.201742997 +0100
+++ cpp/src/IceGrid/ServerI.cpp 2016-11-15 12:48:01.409625996 +0100
@@ -341,7 +341,22 @@
{
assert(_p->first.find("config_") == 0);
const string service = _p->first.substr(7);
- facet = "IceBox.Service." + service + ".Properties";
+ bool useSharedCommunicator = false;
+ for (PropertyDescriptorSeq::const_iterator d = _properties.at("config").begin(); d != _properties.at("config").end(); ++d)
+ {
+ if (d->name == "IceBox.UseSharedCommunicator." + service)
+ {
+ useSharedCommunicator = (atoi(d->value.c_str()) > 0);
+ }
+ }
+ if (useSharedCommunicator)
+ {
+ facet = "IceBox.SharedCommunicator.Properties";
+ }
+ else
+ {
+ facet = "IceBox.Service." + service + ".Properties";
+ }
if(_traceLevels->server > 1)
{
const string id = _server->getId();