1 #include <ipmid/api.hpp>
2 #include <memory>
3 #include <sdbusplus/asio/connection.hpp>
4 
5 namespace
6 {
7 
8 std::unique_ptr<sdbusplus::asio::connection> sdbusp;
9 
10 } // namespace
11 
12 /**
13  * @brief ipmid_get_sdbus_plus_handler is used by some ipmi providers
14  *
15  * @return: a reference to a unique pointer of the systemd connection
16  *          managed by the systemintfcmds code
17  */
18 std::unique_ptr<sdbusplus::asio::connection>& ipmid_get_sdbus_plus_handler()
19 {
20     if (!sdbusp)
21     {
22         // Create a new sdbus connection so it can have a well-known name
23         sd_bus* bus = nullptr;
24         sd_bus_open_system(&bus);
25         if (bus)
26         {
27             sdbusp = std::make_unique<sdbusplus::asio::connection>(
28                 *getIoContext(), bus);
29         }
30     }
31     return sdbusp;
32 }
33