{
if (NULL != g_s_conn_listener) {
dbus_connection_close(g_s_conn_listener);
+ dbus_connection_unref(g_s_conn_listener);
g_s_conn_listener = NULL;
}
if (NULL != g_s_conn_sender) {
dbus_connection_close(g_s_conn_sender);
+ dbus_connection_unref(g_s_conn_sender);
g_s_conn_sender = NULL;
}
}
memset(service_name, '\0', 64);
snprintf(service_name, 64, "%s%d", VC_SETTING_SERVICE_NAME, pid);
+ char rule[128] = {0, };
+ snprintf(rule, 128, "type='signal',interface='%s'", VC_SETTING_SERVICE_INTERFACE);
+ dbus_bus_remove_match(g_s_conn_listener, rule, NULL);
+
dbus_bus_release_name(g_s_conn_listener, service_name, &err);
if (dbus_error_is_set(&err)) {