|  | #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; | 
|  | } |