From 073a868f21747db5b0550c46d74456816e83ef00 Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
Date: Thu, 2 Feb 2012 00:02:22 -0500
Subject: [PATCH] dbus: added some exception handling

---
 daemon/src/dbus/dbusmanager.cpp | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/daemon/src/dbus/dbusmanager.cpp b/daemon/src/dbus/dbusmanager.cpp
index 5d273fab90..becd522679 100644
--- a/daemon/src/dbus/dbusmanager.cpp
+++ b/daemon/src/dbus/dbusmanager.cpp
@@ -80,11 +80,27 @@ DBusManager::~DBusManager()
 
 void DBusManager::exec()
 {
-    dispatcher_.enter();
+    try {
+        dispatcher_.enter();
+    } catch (const DBus::Error &err) {
+        ERROR("%s: %s, exiting\n", err.name(), err.what());
+        ::exit(EXIT_FAILURE);
+    } catch (const std::exception &err) {
+        ERROR("%s: %s, exiting\n", err.what());
+        ::exit(EXIT_FAILURE);
+    }
 }
 
 void
 DBusManager::exit()
 {
-    dispatcher_.leave();
+    try {
+        dispatcher_.leave();
+    } catch (const DBus::Error &err) {
+        ERROR("%s: %s, exiting\n", err.name(), err.what());
+        ::exit(EXIT_FAILURE);
+    } catch (const std::exception &err) {
+        ERROR("%s: %s, exiting\n", err.what());
+        ::exit(EXIT_FAILURE);
+    }
 }
-- 
GitLab