X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-service-adaptation%2Fservices%2Fobex%2Fbt-service-obex-event-receiver.c;h=e89832e8621db3ce2566a8ba327a9fa54168b8a0;hb=64e3895ea7621f1cc79a3caaa2aff42ef457f9fb;hp=37769ff794e7f7471af1a577a6c322004ce08d56;hpb=9a6e83fd9099f56bd7c99969136bbdf82714e0f2;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-service-adaptation/services/obex/bt-service-obex-event-receiver.c b/bt-service-adaptation/services/obex/bt-service-obex-event-receiver.c index 37769ff..e89832e 100644 --- a/bt-service-adaptation/services/obex/bt-service-obex-event-receiver.c +++ b/bt-service-adaptation/services/obex/bt-service-obex-event-receiver.c @@ -786,6 +786,53 @@ void _bt_map_client_event_deinit(void) } } +#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) { @@ -1133,6 +1180,10 @@ static int __bt_init_manager_receiver(void) 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) { @@ -1239,6 +1290,10 @@ void _bt_deinit_obex_event_receiver(void) _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;