return BLUETOOTH_ERROR_NONE;
}
+#ifdef TIZEN_FEATURE_BT_PERMANENT_LOG
+void _bt_start_log_dump(const char *path)
+{
+ GDBusProxy *proxy;
+ GVariant *result;
+ GError *error = NULL;
+
+ ret_if(path == NULL);
+
+ BT_INFO("Start log_dump(path = %s)", path);
+
+ _bt_send_dump_signal(BT_DUMP_SERVICE_START_SIGNAL);
+
+ proxy = __bt_get_core_proxy();
+ ret_if(proxy == NULL);
+
+ result = g_dbus_proxy_call_sync(proxy, "LogDump",
+ g_variant_new("(s)", path),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, NULL, &error);
+
+ if (!result) {
+ if (error != NULL) {
+ BT_ERR("Bt core call failed(Error: %s)", error->message);
+ g_clear_error(&error);
+ } else {
+ BT_ERR("Bt core call failed");
+ }
+ } else {
+ g_variant_unref(result);
+ }
+
+ _bt_send_dump_signal(BT_DUMP_SERVICE_FINISH_SIGNAL);
+}
+#endif
+
int _bt_check_adapter(int *status)
{
BT_INFO("+");
}
}
+#ifdef TIZEN_FEATURE_BT_PERMANENT_LOG
+static void __bt_dump_event_filter(GDBusConnection *connection,
+ const gchar *sender_name,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *signal_name,
+ GVariant *parameters,
+ gpointer user_data)
+{
+ if (strcasecmp(signal_name, BT_DUMP_SERVICE_SIGNAL) == 0) {
+ gchar *path = NULL;
+ int mode = 0;
+
+ g_variant_get(parameters, "(i&s)", &mode, &path);
+ _bt_start_log_dump(path);
+ }
+
+ return;
+}
+
+static int __bt_register_dump_subscribe_signal(GDBusConnection *conn,
+ gboolean subscribe)
+{
+ if (conn == NULL)
+ return -1;
+
+ static guint subs_source_id = 0;
+
+ if (subscribe) {
+ if (subs_source_id == 0) {
+ subs_source_id = g_dbus_connection_signal_subscribe(conn,
+ NULL, BT_DUMP_SERVICE_INTERFACE,
+ BT_DUMP_SERVICE_SIGNAL, BT_DUMP_SERVICE_PATH, NULL, 0,
+ __bt_dump_event_filter,
+ NULL, NULL);
+ }
+ } else {
+ if (subs_source_id > 0) {
+ g_dbus_connection_signal_unsubscribe(conn,
+ subs_source_id);
+ subs_source_id = 0;
+ }
+ }
+ return 0;
+}
+#endif
+
int _bt_register_manager_subscribe_signal(GDBusConnection *conn,
int subscribe)
{
BT_DEVICE_EVENT) != BLUETOOTH_ERROR_NONE)
goto fail;
+#ifdef TIZEN_FEATURE_BT_PERMANENT_LOG
+ __bt_register_dump_subscribe_signal(manager_conn, TRUE);
+#endif
+
return BLUETOOTH_ERROR_NONE;
fail:
if (manager_conn) {
_bt_unregister_service_event(obexd_conn, BT_OPP_SERVER_EVENT);
+#ifdef TIZEN_FEATURE_BT_PERMANENT_LOG
+ __bt_register_dump_subscribe_signal(manager_conn, FALSE);
+#endif
+
if (manager_conn) {
g_object_unref(manager_conn);
manager_conn = NULL;