mapper: Fix GetSubTree bug in the c++ mapper
In cases where multiple daemons expose the same interface, there was a
bug where, if an interface filter was applied, only the first found
daemon would be returned. This resulted in sub-optimal behavior when
searching for things like ObjectManager, that might exist in a lot of
daemons.
Tested By: Before Patch: root@wolfpass:/# dbus-send --system
--print-reply --dest=xyz.openbmc_project.ObjectMapper
/xyz/openbmc_project/object_mapper
xyz.openbmc_project.ObjectMapper.GetSubTree string:"/" int32:1
array:string:org.freedesktop.DBus.ObjectManager
Returns 1 entry
After Patch:
root@wolfpass:/# dbus-send --system --print-reply
--dest=xyz.openbmc_project.ObjectMapper
/xyz/openbmc_project/object_mapper
xyz.openbmc_project.ObjectMapper.GetSubTree string:"/" int32:1
array:string:org.freedesktop.DBus.ObjectManager
returns 12 entries
Change-Id: I0b4e982649f03b0bacf35e26e4d7f310e644d6b8
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/src/main.cpp b/src/main.cpp
index ef93cc3..2643eed 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -947,12 +947,6 @@
interfaces.empty())
{
addSubtreeResult(ret, this_path, interface_map);
-
- // if not just adding every interface, then done
- if (!interfaces.empty())
- {
- break;
- }
}
}
}