diff options
Diffstat (limited to 'src/server/events')
-rw-r--r-- | src/server/events/Delta.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index 6c935ce2..1c823cdd 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -166,9 +166,12 @@ Delta::pre_process() SpecialType op = NONE; if (obj) { Resource& resource = *obj; - resource.add_property(key, value, value.context()); + if (value != uris.wildcard) { + resource.add_property(key, value, value.context()); + } - PortImpl* port = dynamic_cast<PortImpl*>(_object); + BlockImpl* block = NULL; + PortImpl* port = dynamic_cast<PortImpl*>(_object); if (port) { if (key == uris.ingen_broadcast) { if (value.type() == uris.forge.Bool) { @@ -194,6 +197,10 @@ Delta::pre_process() _status = BAD_OBJECT_TYPE; } } + } else if ((block = dynamic_cast<BlockImpl*>(_object))) { + if (key == uris.ingen_controlBinding && value == uris.wildcard) { + op = CONTROL_BINDING; // Internal block learn + } } else if ((_graph = dynamic_cast<GraphImpl*>(_object))) { if (key == uris.ingen_enabled) { if (value.type() == uris.forge.Bool) { |