X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-service%2Fbt-service-event-receiver.c;h=da972781ae6be975a3a04db2e2d43cf962c20fd2;hb=684f5da84d22874810deb97ea6d72b81f63fbb70;hp=105943a738d0f1baa614ba47f0a8da42067d16a8;hpb=4938aeb939b3cf8f80c3cc6da40c81c095c09a2d;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-service/bt-service-event-receiver.c b/bt-service/bt-service-event-receiver.c index 105943a..da97278 100644 --- a/bt-service/bt-service-event-receiver.c +++ b/bt-service/bt-service-event-receiver.c @@ -294,7 +294,7 @@ static gboolean __bt_parse_interface(GVariant *msg, static int __bt_get_owner_info(GVariant *msg, char **name, char **previous, char **current) { - g_variant_get(msg, "(sss)", name, previous, current); + g_variant_get(msg, "(&s&s&s)", name, previous, current); return BLUETOOTH_ERROR_NONE; } @@ -1084,7 +1084,7 @@ static void __bt_device_property_changed_event(GVariant *msg, const char *path) char secure_addr[BT_ADDRESS_STRING_SIZE] = { 0 }; _bt_convert_addr_string_to_secure_string(secure_addr, address); - BT_INFO("### Paired: %s", secure_addr); + BT_INFO(" ### Paired: %s", secure_addr); __bt_update_remote_cache_devinfo(address, TRUE); GVariant *uuids = NULL; @@ -2570,12 +2570,10 @@ void _bt_handle_agent_event(GVariant *msg, const char *member) if (strcasecmp(member, "ObexAuthorize") == 0) { __bt_get_agent_signal_info(msg, &address, &name, &uuid); - param = g_variant_new("(iss)", result, address, name); + param = g_variant_new("(i&s&s)", result, address, name); _bt_send_event(BT_OPP_SERVER_EVENT, BLUETOOTH_EVENT_OBEX_SERVER_CONNECTION_AUTHORIZE, param); - g_free(address); - g_free(name); } else if (strcasecmp(member, "RfcommAuthorize") == 0) { bt_rfcomm_server_info_t *server_info; @@ -2584,14 +2582,11 @@ void _bt_handle_agent_event(GVariant *msg, const char *member) server_info = _bt_rfcomm_get_server_info_using_uuid(uuid); ret_if(server_info == NULL); ret_if(server_info->server_type != BT_CUSTOM_SERVER); - param = g_variant_new("(isssn)", result, address, uuid, name, + param = g_variant_new("(i&s&s&sn)", result, address, uuid, name, server_info->control_fd); _bt_send_event(BT_RFCOMM_SERVER_EVENT, BLUETOOTH_EVENT_RFCOMM_AUTHORIZE, param); - g_free(address); - g_free(uuid); - g_free(name); } } @@ -2797,19 +2792,21 @@ static void __bt_manager_event_filter(GDBusConnection *connection, char *previous = NULL; char *current = NULL; + if (g_strcmp0(g_variant_get_type_string(parameters), "(sss)") != 0) { + BT_ERR("Invalid variant format"); + return; + } + if (__bt_get_owner_info(parameters, &name, &previous, ¤t)) { BT_ERR("Fail to get the owner info"); return; } - if (*current != '\0') { - g_free(current); - if (name) - g_free(name); - if (previous) - g_free(previous); + if (*current != '\0') + return; + + if (name == NULL) return; - } if (strcasecmp(name, BT_BLUEZ_NAME) == 0) { BT_INFO_C("### Bluetoothd is terminated"); @@ -2843,10 +2840,6 @@ static void __bt_manager_event_filter(GDBusConnection *connection, /* Stop LE Scan */ _bt_stop_le_scan(name); - - g_free(name); - g_free(previous); - g_free(current); } else if (g_strcmp0(interface_name, BT_PROPERTIES_INTERFACE) == 0) { const char *path = object_path; @@ -2862,7 +2855,9 @@ static void __bt_manager_event_filter(GDBusConnection *connection, } else if (g_strcmp0(interface_name, BT_NETWORK_SERVER_INTERFACE) == 0) { _bt_handle_network_server_event(parameters, signal_name); } else if (g_strcmp0(interface_name, BT_HEADSET_INTERFACE) == 0) { - _bt_handle_headset_event(parameters, object_path); + if (g_strcmp0(signal_name, "PropertyChanged") == 0) { + _bt_handle_headset_event(parameters, object_path); + } } else if (g_strcmp0(interface_name, BT_SINK_INTERFACE) == 0) { _bt_handle_sink_event(parameters, object_path); } else if (g_strcmp0(interface_name, BT_AGENT_INTERFACE) == 0) { @@ -2911,7 +2906,7 @@ static void __bt_obexd_event_filter(GDBusConnection *connection, BT_ERR("Fail to get the path"); return; } - BT_INFO("object_path = [%s]", obj_path); + BT_DBG("object_path = [%s]", obj_path); /*Handle OPP_SERVER_CONNECTED_EVENT here */ if (strncmp(obj_path, BT_SESSION_BASEPATH_SERVER, @@ -2931,7 +2926,7 @@ static void __bt_obexd_event_filter(GDBusConnection *connection, BT_ERR("Fail to get the path"); return; } - BT_INFO("object_path = [%s]", obj_path); + BT_DBG("object_path = [%s]", obj_path); if (strncmp(obj_path, BT_SESSION_BASEPATH_CLIENT, strlen(BT_SESSION_BASEPATH_CLIENT)) == 0) { @@ -3270,7 +3265,7 @@ int _bt_register_audio_subscribe_signal(GDBusConnection *conn, if (subs_headset_id == -1) { subs_headset_id = g_dbus_connection_signal_subscribe(conn, NULL, BT_HEADSET_INTERFACE, - NULL, NULL, NULL, 0, + "PropertyChanged", NULL, NULL, 0, __bt_manager_event_filter, NULL, NULL); }