| e50edf7c |
AVCTP: Fix allways destroying browsing channel
This reverts commit 53d3fc3fad5152167458625ad2acf19070cdf26a that leads
to always destroy the browsing channel because the callback changes the
state.
To fix session_browsing_cb naw takes care of destroying the channel if it
disconnects. |
Luiz Augusto von Dentz |
13 years ago |
1 file, +7, -4 |
| c8cc3046 |
tools: Fix mpris-player creating busname starting with digit
D-Bus does not allow a bus name starting with digits after . so the code
now prefix with bt_ if the device name starts with a digit. |
Luiz Augusto von Dentz |
13 years ago |
1 file, +5, -1 |
| 67777448 |
tools: Use device Alias instead of Name in mpris-player
User may have set a different Name using Alias, Alias should always
be set. |
Luiz Augusto von Dentz |
13 years ago |
1 file, +1, -1 |
| 5daa339e |
hcidump: Fix parsing of SetBrowsedPlayer |
Luiz Augusto von Dentz |
13 years ago |
1 file, +4, -4 |
| 4700a58e |
hcidump: Fix parsing of GetCurrentPlayerApplicationSettingValue |
Luiz Augusto von Dentz |
13 years ago |
1 file, +1, -1 |
| 5ee8965b |
hcidump: Distinct Control and Browsing AVCTP channels
This prints the respective channel of the trafic |
Luiz Augusto von Dentz |
13 years ago |
1 file, +2, -1 |
| 9c12c5b8 |
tools: Update tester apps to use new hciemu API |
Johan Hedberg |
13 years ago |
2 files, +4, -2 |
| 939da350 |
shared: Provide hciemu type in hciemu_new() |
Johan Hedberg |
13 years ago |
2 files, +25, -4 |
| 946e51cd |
emulator: Create separate BR/EDR, BR/EDR/LE and LE vhci types |
Johan Hedberg |
13 years ago |
2 files, +13, -1 |
| 1ffa2638 |
emulator: Create separate server BR/EDR/LE and BR/EDR types |
Johan Hedberg |
13 years ago |
3 files, +17, -7 |
| cdc90de8 |
shared: Create BR/EDR/LE device type by default |
Johan Hedberg |
13 years ago |
1 file, +2, -2 |
| d61dcac1 |
emulator: Create separate BR/EDR/LE and BR/EDR device types |
Johan Hedberg |
13 years ago |
2 files, +29, -1 |
| a5ee04e2 |
TODO: Remove completed passive scanning entry |
Johan Hedberg |
13 years ago |
1 file, +0, -5 |
| a4035098 |
core: Stop passive scanning when removing last item from connect_list |
Johan Hedberg |
13 years ago |
1 file, +3, -1 |
| b6da4c4d |
core: Refactor passive scanning stopping into its own function |
Johan Hedberg |
13 years ago |
1 file, +55, -40 |
| a9d59605 |
core: Fix missing check for main_opts.reverse_sdp |
Johan Hedberg |
13 years ago |
1 file, +1, -1 |
| bc1b7a48 |
core: Fix checking for correct async operation id |
Johan Hedberg |
13 years ago |
1 file, +1, -1 |
| 41ec2bd3 |
core: Move SDP record fetching to NewConnection sending function |
Johan Hedberg |
13 years ago |
1 file, +41, -42 |
| b163de40 |
core: Do authorization and service resolving in parallel |
Johan Hedberg |
13 years ago |
1 file, +53, -36 |
| 2f4004d1 |
core: Force discovery timer to run immediately if a profile needs it |
Johan Hedberg |
13 years ago |
1 file, +4, -0 |
| a180f3e6 |
core: Fix SDP resolving for incoming external profile connections
This patch ensures that the reverse SDP procedure completes before we
accept incoming profiles for external profiles. |
Johan Hedberg |
13 years ago |
1 file, +41, -6 |
| 5274e6fc |
core: Add device API for waiting for SDP completion |
Johan Hedberg |
13 years ago |
2 files, +102, -0 |
| 160915cc |
core: Remove unnecessary assignment to device->svc_resolved
The device_svc_resolved() function already takes care of setting
device->svc_resolved to true. |
Johan Hedberg |
13 years ago |
1 file, +0, -1 |
| 7ba85583 |
TODO: Add item for improving stopping passive scanning |
Johan Hedberg |
13 years ago |
1 file, +5, -0 |
| fddc263b |
core: Fix updating discovery state when stopping passive scanning |
Johan Hedberg |
13 years ago |
1 file, +3, -0 |
| b8bdb1c1 |
core: Remove unnecessary adapter->passive_scanning variable
The adapter->discovery_list can function equally well as an indicator of
whether normal discovery or passive scanning is in progress. Normal
discovery always overrides passive scanning so if there's one or more
entries in discovery_list we must be performing normal discovery and not
passive scanning. |
Johan Hedberg |
13 years ago |
1 file, +5, -10 |
| dad9ef1d |
core: Make device_set_auto_connect private to device.c |
Johan Hedberg |
13 years ago |
2 files, +1, -2 |
| f5dabf18 |
proximity: Remove unnecessary device_set_auto_connect call |
Johan Hedberg |
13 years ago |
1 file, +0, -2 |
| 1c51e121 |
input: Remove unnecessary device_set_auto_connect call |
Johan Hedberg |
13 years ago |
1 file, +0, -2 |
| 965c65db |
core: Let device_set_auto_connect do connect list adding
The device_set_auto_connect function should be the only function that
needs to call adapter_connect_list_add(). |
Johan Hedberg |
13 years ago |
1 file, +2, -5 |
| b26ebf2b |
core: Make device_get_auto_connect private to device.c |
Johan Hedberg |
13 years ago |
2 files, +8, -9 |
| 90503285 |
core: Move connect_list handling to ATT specific callbacks
This is more reliable since we're not always guaranteed to get the right
mgmt events, e.g. a socket connect timeout might not trigger those. |
Johan Hedberg |
13 years ago |
2 files, +12, -30 |
| efc515d5 |
core: Allow adapter_connect_list_remove to trigger LE scanning |
Johan Hedberg |
13 years ago |
1 file, +8, -0 |
| 35ac5407 |
core: Fix adapter->connect_le updating in connect_list_add/remove |
Johan Hedberg |
13 years ago |
1 file, +16, -0 |
| 4cc7c23a |
core: Fix g_source_remove() with zero ID while removing device
store_device_info_cb() is also used as callback for g_idle_add() and
therefore sets device->store_id to zero. During device removal it may be
called manually, which must be done only after the existing
device->store_id is removed from mainloop.
Fix this GLib error (and a bunch of invalid read/writes when
store_device_info_cb() was called after device removal due to this bug):
bluetoothd[1192]: src/device.c:device_remove() Removing device
/org/bluez/hci0/dev_12_34_12_34_12_34
(bluetoothd:1192): GLib-CRITICAL **: g_source_remove: assertion `tag >
0' failed
bluetoothd[1192]: src/device.c:btd_device_unref() Freeing device
/org/bluez/hci0/dev_12_34_12_34_12_34
bluetoothd[1192]: src/device.c:device_free() 0x463a2a0 |
Anderson Lizardo |
13 years ago |
1 file, +3, -3 |
| e897eaaa |
gas: Fix not sending response to indication
Even if the remote device is not bonded, we should send the response to the
indication. If we don't the remote device may disconnect. |
Vinicius Costa Gomes |
13 years ago |
1 file, +5, -5 |
| eac1dfd0 |
gas: Move all the code to only one file
Our Generic Attribute/Access Service plugin is small and simple enough
to be kept in only one file. |
Vinicius Costa Gomes |
13 years ago |
6 files, +49, -181 |
| 99f60924 |
device: Fix invalid memory access during Find Included
When doing the Find Included Services GATT procedure, the status of the ATT
procedure was being ignored, and in the case of a timeout it is possible to
crash bluetooth with an invalid memory access.
Valgrind log:
==1755== Invalid read of size 8
==1755== at 0x46971A: find_included_cb (device.c:2964)
==1755== by 0x4465AE: isd_unref (gatt.c:92)
==1755== by 0x446885: find_included_cb (gatt.c:425)
==1755== by 0x448266: disconnect_timeout (gattrib.c:269)
==1755== by 0x4E76BCA: g_timeout_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76044: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76377: g_main_context_iterate.isra.24 (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76771: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x40A2EE: main (main.c:583)
==1755== Address 0x69530a8 is 8 bytes inside a block of size 64 free'd
==1755== at 0x4C2874F: free (vg_replace_malloc.c:446)
==1755== by 0x40BFA6: service_filter (watch.c:486)
==1755== by 0x40BC6A: message_filter (watch.c:554)
==1755== by 0x5160A1D: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.7.2)
==1755== by 0x40AAB7: message_dispatch (mainloop.c:76)
==1755== by 0x4E76BCA: g_timeout_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76044: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76377: g_main_context_iterate.isra.24 (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76771: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x40A2EE: main (main.c:583)
==1755==
==1755== Invalid read of size 8
==1755== at 0x4486D5: g_attrib_get_buffer (gattrib.c:657)
==1755== by 0x4467C5: find_included (gatt.c:363)
==1755== by 0x4465AE: isd_unref (gatt.c:92)
==1755== by 0x446885: find_included_cb (gatt.c:425)
==1755== by 0x448266: disconnect_timeout (gattrib.c:269)
==1755== by 0x4E76BCA: g_timeout_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76044: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76377: g_main_context_iterate.isra.24 (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76771: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x40A2EE: main (main.c:583)
==1755== Address 0x18 is not stack'd, malloc'd or (recently) free'd
==1755==
==1755==
==1755== Process terminating with default action of signal 11 (SIGSEGV)
==1755== Access not within mapped region at address 0x18
==1755== at 0x4486D5: g_attrib_get_buffer (gattrib.c:657)
==1755== by 0x4467C5: find_included (gatt.c:363)
==1755== by 0x4465AE: isd_unref (gatt.c:92)
==1755== by 0x446885: find_included_cb (gatt.c:425)
==1755== by 0x448266: disconnect_timeout (gattrib.c:269)
==1755== by 0x4E76BCA: g_timeout_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76044: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76377: g_main_context_iterate.isra.24 (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x4E76771: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3400.2)
==1755== by 0x40A2EE: main (main.c:583) |
Vinicius Costa Gomes |
13 years ago |
2 files, +10, -1 |
| ee9c0845 |
neard: Fix memory leak on registering as agent
Message reference was not dropped in register_agent. This fix following
memory leak reported by valgrind:
454 (184 direct, 270 indirect) bytes in 1 blocks are definitely lost in loss record 207 of 220
at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x513DCF2: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514222E: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5149F46: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514A070: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514AA63: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514B0A5: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5149E0C: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5134D24: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5136088: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5135643: dbus_connection_send_with_reply_and_block (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5130C93: dbus_bus_register (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
102 bytes in 1 blocks are indirectly lost in loss record 154 of 220
at 0x4C2B7B2: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x514F02F: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514F0DD: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514F239: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514DE0A: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514E3D3: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x513C138: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x513FF4D: dbus_message_iter_append_basic (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5141790: dbus_message_new_error (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5135C70: dbus_connection_dispatch (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x40A747: message_dispatch (mainloop.c:76)
by 0x4E7A91A: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.3)
168 bytes in 1 blocks are indirectly lost in loss record 185 of 220
at 0x4C2B7B2: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x514F02F: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514F0DD: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514F239: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x513A3B3: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514228F: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5149F46: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514A070: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514AA63: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x514B0A5: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5149E0C: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
by 0x5134D24: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8) |
Szymon Janc |
13 years ago |
1 file, +3, -0 |
| e5b21606 |
neard: Fix passing negative error code to strerror
error_reply expects non-negative error code. |
Szymon Janc |
13 years ago |
1 file, +1, -1 |
| 83400b10 |
core: Allow Device1.Connect/Disconnect to control auto connection
This patch makes it possible to disable the LE auto connections
temporarily through Device1.Disconnect and re-enable them by calling
Device1.Connect(). |
Johan Hedberg |
13 years ago |
1 file, +13, -0 |
| b501a6fa |
core: Stop passive scanning before connecting LE
Many controllers do not support creating LE connections at the same time
as doing scanning so stop the scanning before attempting to connect. |
Johan Hedberg |
13 years ago |
1 file, +71, -4 |
| 5d562e57 |
core: Add device_get_auto_connect() function needed for LE connections |
Johan Hedberg |
13 years ago |
2 files, +6, -0 |
| 352f3ad6 |
core: Add a variable to track passive scanning
This patch adds a state variable to track passive scanning and ensures
that LE connections are only created through this discovery procedure
and not the normal (StartDiscovery based) discovery procedure. |
Johan Hedberg |
13 years ago |
1 file, +9, -0 |
| 667cb4c4 |
attrib: Don't attempt to unregister event id 0
Id 0 is considered invalid so the code should not even try to lookup for
it in the event list instead print a warning and return FALSE
immediatelly. |
Luiz Augusto von Dentz |
13 years ago |
1 file, +5, -0 |
| 9c410e37 |
thermometer: Fix crash while unregistering adapter
Invalid read of size 8
at 0x448200: g_attrib_unregister (gattrib.c:722)
by 0x440476: destroy_thermometer (thermometer.c:167)
by 0x40D849: remove_interface (object.c:656)
by 0x40DAA9: g_dbus_unregister_interface (object.c:1413)
by 0x3DF7A63C9C: g_slist_foreach (gslist.c:894)
by 0x469656: device_remove (device.c:2200)
by 0x45CDC1: adapter_remove (adapter.c:3884)
by 0x45F146: index_removed (adapter.c:5442)
by 0x46BC17: received_data (mgmt.c:252)
by 0x3DF7A47A74: g_main_context_dispatch (gmain.c:2715)
by 0x3DF7A47DA7: g_main_context_iterate.isra.24 (gmain.c:3290)
by 0x3DF7A481A1: g_main_loop_run (gmain.c:3484)
Address 0x40 is not stack'd, malloc'd or (recently) free'd |
Luiz Augusto von Dentz |
13 years ago |
1 file, +5, -5 |
| ad3ceb04 |
media: Fix not finding endpoints with different case UUIDs
When multiple Endpoints are registered with different case UUIDs,
the only UUIDs found were those with matching case. |
Vinicius Costa Gomes |
13 years ago |
1 file, +2, -2 |
| f924572f |
core: Fix LE connections based on connect_list |
Johan Hedberg |
13 years ago |
1 file, +6, -1 |
| d3a75b7e |
monitor: Add supported commands bit numbers |
Marcel Holtmann |
13 years ago |
1 file, +211, -210 |
| 47bcbd6c |
media: Fix custom property registration for multiple adapters
The function btd_profile_add_custom_prop register a custom property for
an UUID which is valid for every adapter so its user_data cannot be tied
to a single adapter.
To fix this now NULL is passed as user_data and the callbacks checks if
the adapter passed has been registered and if there is an endpoint for
the UUID requested. |
Luiz Augusto von Dentz |
13 years ago |
1 file, +23, -4 |