diff options
author | Vernon Mauery <vernon.mauery@linux.intel.com> | 2018-10-25 09:36:06 -0700 |
---|---|---|
committer | Vernon Mauery <vernon.mauery@linux.intel.com> | 2018-11-21 10:51:29 -0800 |
commit | d0062ede9f3c181010dbd1041b764b55862fab11 (patch) | |
tree | e64c6dfbb4229ae68456c94a54fa190ac8261e14 /main.cpp | |
parent | 4cb73595dd5716e8767d1dcab9496ccb4c0dd8f4 (diff) | |
download | phosphor-net-ipmid-d0062ede9f3c181010dbd1041b764b55862fab11.tar.gz phosphor-net-ipmid-d0062ede9f3c181010dbd1041b764b55862fab11.zip |
netipmid: move to sdbusplus from sdbus minus
In main, wrapping the raw sd_bus object with an sdbusplus class makes
deals with the unref problem automatically.
Change-Id: I7d21c21bc09cc96e2d4b07d1b51b6f82239e0793
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -43,6 +43,8 @@ static unsigned short selReservationID = 0xFFFF; static bool selReservationValid = false; sd_bus_slot* ipmid_slot = nullptr; +std::shared_ptr<sdbusplus::bus::bus> sdbusp; + /* * @brief Required by apphandler IPMI Provider Library */ @@ -52,6 +54,14 @@ sd_bus* ipmid_get_sd_bus_connection() } /* + * @brief mechanism to get at sdbusplus object + */ +std::shared_ptr<sdbusplus::bus::bus> getSdBus() +{ + return sdbusp; +} + +/* * @brief Required by apphandler IPMI Provider Library */ sd_event* ipmid_get_sd_event_connection() @@ -110,13 +120,14 @@ int main() << "\n"; goto finish; } + sdbusp = std::make_shared<sdbusplus::bus::bus>(bus); /* Get an sd event handler */ rc = sd_event_default(&events); if (rc < 0) { std::cerr << "Failure to create sd_event" << strerror(-rc) << "\n"; - goto finish; + return EXIT_FAILURE; } // Register callback to update cache for a GUID change and cache the GUID @@ -137,7 +148,6 @@ int main() .startEventLoop(events); finish: - sd_bus_unref(bus); sd_event_unref(events); return 0; |