Fix emit interface added signal
Send the interface added signal once the object is fully
populated.
Here we are fixing this behaviour for two D-bus objects
1) Root Dbus object for user manager app.
2) Individual user D-bus object.
Before this fix was getting two signals for creation of user/manager
signal time=1562577322.850104 sender=:1.57 -> destination=(null destination) serial=346
path=/xyz/openbmc_project/user; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesAdded
signal time=1562577322.897089 sender=:1.57 -> destination=(null destination) serial=347
path=/xyz/openbmc_project/user; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesAdded
After the fix was getting single signal
signal time=1562577775.550198 sender=:1.156 -> destination=(null destination) serial=27
path=/xyz/openbmc_project/user; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesAdded
Change-Id: I20ac168fe4fc7cd94cd2032db6ebc1623af5943d
Signed-off-by: Ratan Gupta <ratagupt@linux.vnet.ibm.com>
diff --git a/user_mgr.cpp b/user_mgr.cpp
index 183afbe..17146e6 100644
--- a/user_mgr.cpp
+++ b/user_mgr.cpp
@@ -1112,7 +1112,7 @@
}
UserMgr::UserMgr(sdbusplus::bus::bus &bus, const char *path) :
- UserMgrIface(bus, path), AccountPolicyIface(bus, path), bus(bus), path(path)
+ Ifaces(bus, path, true), bus(bus), path(path)
{
UserMgrIface::allPrivileges(privMgr);
std::sort(groupsMgr.begin(), groupsMgr.end());
@@ -1221,6 +1221,9 @@
AccountPolicyIface::accountUnlockTimeout(value32);
}
initUserObjects();
+
+ // emit the signal
+ this->emit_object_added();
}
} // namespace user