+int vcd_dbus_reconnect()
+{
+ bool sender_connected = dbus_connection_get_is_connected(g_conn_sender);
+ bool listener_connected = dbus_connection_get_is_connected(g_conn_listener);
+ SLOG(LOG_WARN, TAG_VCD, "[DBUS] Sender(%s) Listener(%s)",
+ sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
+
+ if (false == sender_connected || false == listener_connected) {
+ vcd_dbus_close_connection();
+
+ if (0 != vcd_dbus_open_connection()) {
+ SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to reconnect");
+ return -1;
+ }
+
+ SLOG(LOG_DEBUG, TAG_VCD, "[DBUS] Reconnect");
+ }
+
+ return 0;
+}
+
+static int __dbus_check()
+{
+ if (NULL == g_conn_sender) {
+ SLOG(LOG_ERROR, TAG_VCD, "[ERROR] NULL connection");
+ return vcd_dbus_reconnect();
+ }
+ return 0;
+}
+