summaryrefslogtreecommitdiffstats
path: root/user_channel/user_mgmt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'user_channel/user_mgmt.cpp')
-rw-r--r--user_channel/user_mgmt.cpp74
1 files changed, 37 insertions, 37 deletions
diff --git a/user_channel/user_mgmt.cpp b/user_channel/user_mgmt.cpp
index 6b9d1d3..a8d2219 100644
--- a/user_channel/user_mgmt.cpp
+++ b/user_channel/user_mgmt.cpp
@@ -471,43 +471,8 @@ UserAccess::UserAccess() : bus(ipmid_get_sd_bus_connection())
userMutex = std::make_unique<boost::interprocess::named_recursive_mutex>(
boost::interprocess::open_or_create, ipmiUserMutex);
- initUserDataFile();
+ cacheUserDataFile();
getSystemPrivAndGroups();
- sigHndlrLock = boost::interprocess::file_lock(ipmiUserDataFile);
- // Register it for single object and single process either netipimd /
- // host-ipmid
- if (userUpdatedSignal == nullptr && sigHndlrLock.try_lock())
- {
- log<level::DEBUG>("Registering signal handler");
- userUpdatedSignal = std::make_unique<sdbusplus::bus::match_t>(
- bus,
- sdbusplus::bus::match::rules::type::signal() +
- sdbusplus::bus::match::rules::interface(dBusObjManager) +
- sdbusplus::bus::match::rules::path(userMgrObjBasePath),
- [&](sdbusplus::message::message& msg) {
- userUpdatedSignalHandler(*this, msg);
- });
- userMgrRenamedSignal = std::make_unique<sdbusplus::bus::match_t>(
- bus,
- sdbusplus::bus::match::rules::type::signal() +
- sdbusplus::bus::match::rules::interface(userMgrInterface) +
- sdbusplus::bus::match::rules::path(userMgrObjBasePath),
- [&](sdbusplus::message::message& msg) {
- userUpdatedSignalHandler(*this, msg);
- });
- userPropertiesSignal = std::make_unique<sdbusplus::bus::match_t>(
- bus,
- sdbusplus::bus::match::rules::type::signal() +
- sdbusplus::bus::match::rules::path_namespace(userObjBasePath) +
- sdbusplus::bus::match::rules::interface(
- dBusPropertiesInterface) +
- sdbusplus::bus::match::rules::member(propertiesChangedSignal) +
- sdbusplus::bus::match::rules::argN(0, usersInterface),
- [&](sdbusplus::message::message& msg) {
- userUpdatedSignalHandler(*this, msg);
- });
- signalHndlrObject = true;
- }
}
UserInfo* UserAccess::getUserInfo(const uint8_t userId)
@@ -1569,7 +1534,7 @@ int UserAccess::getUserObjProperties(const DbusUserObjValue& userObjs,
return -EIO;
}
-void UserAccess::initUserDataFile()
+void UserAccess::cacheUserDataFile()
{
boost::interprocess::scoped_lock<boost::interprocess::named_recursive_mutex>
userLock{*userMutex};
@@ -1596,6 +1561,41 @@ void UserAccess::initUserDataFile()
}
writeUserData();
}
+ sigHndlrLock = boost::interprocess::file_lock(ipmiUserDataFile);
+ // Register it for single object and single process either netipimd /
+ // host-ipmid
+ if (userUpdatedSignal == nullptr && sigHndlrLock.try_lock())
+ {
+ log<level::DEBUG>("Registering signal handler");
+ userUpdatedSignal = std::make_unique<sdbusplus::bus::match_t>(
+ bus,
+ sdbusplus::bus::match::rules::type::signal() +
+ sdbusplus::bus::match::rules::interface(dBusObjManager) +
+ sdbusplus::bus::match::rules::path(userMgrObjBasePath),
+ [&](sdbusplus::message::message& msg) {
+ userUpdatedSignalHandler(*this, msg);
+ });
+ userMgrRenamedSignal = std::make_unique<sdbusplus::bus::match_t>(
+ bus,
+ sdbusplus::bus::match::rules::type::signal() +
+ sdbusplus::bus::match::rules::interface(userMgrInterface) +
+ sdbusplus::bus::match::rules::path(userMgrObjBasePath),
+ [&](sdbusplus::message::message& msg) {
+ userUpdatedSignalHandler(*this, msg);
+ });
+ userPropertiesSignal = std::make_unique<sdbusplus::bus::match_t>(
+ bus,
+ sdbusplus::bus::match::rules::type::signal() +
+ sdbusplus::bus::match::rules::path_namespace(userObjBasePath) +
+ sdbusplus::bus::match::rules::interface(
+ dBusPropertiesInterface) +
+ sdbusplus::bus::match::rules::member(propertiesChangedSignal) +
+ sdbusplus::bus::match::rules::argN(0, usersInterface),
+ [&](sdbusplus::message::message& msg) {
+ userUpdatedSignalHandler(*this, msg);
+ });
+ signalHndlrObject = true;
+ }
std::map<DbusUserObjPath, DbusUserObjValue> managedObjs;
try
{
OpenPOWER on IntegriCloud