summaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
authorVernon Mauery <vernon.mauery@linux.intel.com>2018-10-25 09:36:06 -0700
committerVernon Mauery <vernon.mauery@linux.intel.com>2018-11-21 10:51:29 -0800
commitd0062ede9f3c181010dbd1041b764b55862fab11 (patch)
treee64c6dfbb4229ae68456c94a54fa190ac8261e14 /main.cpp
parent4cb73595dd5716e8767d1dcab9496ccb4c0dd8f4 (diff)
downloadphosphor-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.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/main.cpp b/main.cpp
index f49d4c7..b142ed7 100644
--- a/main.cpp
+++ b/main.cpp
@@ -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;
OpenPOWER on IntegriCloud