blob: a9a4e186778ec14e01c3dca40c2f98c373686a76 [file] [log] [blame]
#include <ipmid/api.hpp>
#include <sdbusplus/asio/connection.hpp>
#include <memory>
namespace
{
std::unique_ptr<sdbusplus::asio::connection> sdbusp;
} // namespace
/**
* @brief ipmid_get_sdbus_plus_handler is used by some ipmi providers
*
* @return: a reference to a unique pointer of the systemd connection
* managed by the systemintfcmds code
*/
std::unique_ptr<sdbusplus::asio::connection>& ipmid_get_sdbus_plus_handler()
{
if (!sdbusp)
{
// Create a new sdbus connection so it can have a well-known name
sd_bus* bus = nullptr;
sd_bus_open_system(&bus);
if (bus)
{
sdbusp = std::make_unique<sdbusplus::asio::connection>(
*getIoContext(), bus);
}
}
return sdbusp;
}