| 88e0af71 |
android/gatt: Add helper for getting local MTU
This helper makes code easier to follow. Also local MTU is now
MIN(IMTU,OMTU) to avoid situation that where local OMTU is
lower than negotiated MTU. |
Szymon Janc |
10 years ago |
1 file, +46, -51 |
| 518a0d9f |
android/gatt: Disconnect ATT if MTU is too small on BR/EDR
On BR/EDR MTU is negotiated using L2CAP configuration and not by
ATT MTU exchange procedure. |
Szymon Janc |
10 years ago |
1 file, +8, -0 |
| 23a4b8af |
android/gatt: Exchange MTU only on LE link
As per Core Specification Vol 3. Part G. 4.3.1 ATT MTU exchange
procedure shall not be used on BR/EDR link. |
Szymon Janc |
10 years ago |
1 file, +10, -2 |
| 06b2a813 |
android/gatt: Fix MTU exchange
This fix using invalid MTU on LE link. Previous attempt to fix this
"android/gatt: Fix initial setting of MTU" was not correct since
on LE default MTU is always 23 and we are not allowed to send bigger
requests before MTU exchange was performed.
This was affecting multiple PTS GATT test cases. |
Szymon Janc |
10 years ago |
1 file, +10, -3 |
| bf8faa2b |
android/handsfree-client: Fix missing connected state notification
There is additional state 'connected' that should be entered when
RFCOMM is connected but before SLC is completed. |
Szymon Janc |
10 years ago |
1 file, +2, -0 |
| f6e0033a |
android/handsfree-client: Fix connection state defines
Connected state was missing. |
Szymon Janc |
10 years ago |
2 files, +6, -4 |
| 98f1823b |
shared/hfp: Fix not processing input from hfp_gw_send_error
If for some reason there is more than one AT command in the ring
buffer we should make sure that after upper layer sends error, AT
parser gets back to reading data from ring buffer.
Same is already done in hfp_gw_send_result() and we should handle
this in error response as well. |
Szymon Janc |
10 years ago |
1 file, +8, -1 |
| e37ac863 |
shared/hfp: Fix calling io read function directly
can_read_data function should by called only from IO read callback.
can_read_data feeds ringbuffer but don't call process_input() if
there is pending result. So it is enought to just call process_input
cause any pending data are already present in ring_buffer.
This fix blocking read in unit/test-hfp exposed by previous patch. |
Szymon Janc |
10 years ago |
1 file, +1, -1 |
| 98078c12 |
shared/hfp: Fix calling callback without result_pending set
Always set pending_result before calling command callback.
If response will be send from callback pending_result will be
cleared by either hfp_gw_send_result or hfp_gw_send_error. |
Szymon Janc |
10 years ago |
1 file, +2, -1 |
| 46aad836 |
shared/gatt: Allow register_notify without CCC
Most OSes allow to register characteristics without a CCC even if they
do support notification/indication, this is not according to the
specification and may not even work in practice since there is no way
to enable notifications/indications without a CCC to write to but there
has been some applications that do that anyway.
This patch fixes this behavior so that bt_gatt_client_register_notify
immediately registers the callback and returns success for
characteristics with no CCC, this does cause any air traffic therefore
it is safe to assume it won't cause any problems. |
Arman Uguray |
10 years ago |
1 file, +25, -18 |
| 93bfa5fa |
android/README: Update known Android issues session |
Szymon Janc |
10 years ago |
1 file, +3, -1 |
| f031f489 |
android/tester: Fix ccc descriptor handle
Some service handle count was recently changed. |
Jakub Tyszkowski |
10 years ago |
1 file, +1, -1 |
| 228fc1cd |
android/pts: Update IOPT test results for PTS 6.0
This patch updates test pixits, pics, results for IOPT profile against
android 5.0 |
Grzegorz Kolodziejczyk |
10 years ago |
3 files, +14, -13 |
| 2898f256 |
shared/hfp: Minor code style fix |
Szymon Janc |
10 years ago |
1 file, +3, -4 |
| 6ce22a5a |
tools/btgatt-server: Fix help message for GATT
Added '\n' to make help message looks good as below:
btgatt-server
Usage:
btgatt-server [options]
Options:
-i, --index <id> Specify adapter index, e.g. hci0
-m, --mtu <mtu> The ATT MTU to use
-s, --security-level <sec> Set security level (low|medium|high)
-v, --verbose Enable extra logging
-r, --heart-rate Enable Heart Rate service
-h, --help Display help |
Gowtham Anandha Babu |
10 years ago |
1 file, +1, -1 |
| 7c4da6ca |
test/pbap-client: Add support to fetch spd,fav PB
Adds support to fetch spd,fav phonebook.
Tested using PTS test case TC_PCE_PBB_BV_01_C. |
Gowtham Anandha Babu |
10 years ago |
1 file, +1, -1 |
| 3ef920bf |
attrib: Fix Read Blob error responses
Read blob response with offset equal to value length should return
zero length value intead of Invalid Offset Error.
Found during qualification test case TC/GAR/SR/BV-08-C Read behind
Long Characteristic Descriptor. |
Marcin Kraglak |
10 years ago |
1 file, +1, -1 |
| 6ea23877 |
shared/gatt-client: Fix bug in service discovery
find_service_for_handle was manually computing end handle. It was
causing overflow for last service in range, that always ends at 0xFFFF.
That caused service for handle not being found. |
Jakub Pawlowski |
10 years ago |
1 file, +2, -3 |
| 01866e8d |
android/gatt: Remove not used variable |
Lukasz Rymanowski |
10 years ago |
1 file, +1, -3 |
| f417aebc |
android/gatt: Fix initial setting of MTU
Initial setting of MTU should be IMTU. This is actually our assumption
in other part of code, that IMTU is something we start with and change
if needed after exchange MTU procedure.
If we are not able to get IMTU from the socket just disconnect, there is
something wrong going on.
Without this patch you can face the issue with following scenario:
1. On connection complete MTU is set to 23
2. BfA sends Exchange MTU Request with MTU set to IMTU
3. Remote device response with MTU equal to what BfA sends
4. In that case, since remote MTU is equal to ours, there is no
update in bt_att, so bt_att keep using MTU = 23
5. Remote sends packets highier then 23 and bt_att start to drop not
complete packets.
Issue found and fix tested on UPF50 |
Lukasz Rymanowski |
10 years ago |
1 file, +9, -3 |
| 4ee01482 |
android/pts: Updated PBAP PICS and PIXITs for PTS 6.0
Tested against Android 5.0 |
Sebastian Chlad |
10 years ago |
3 files, +47, -14 |
| 1d9eb6f0 |
android/handsfree: Fix not selecting correct SDP HSP record
If remote device has both HSP AG and HSP HF records then we were
always selecting first record. This could result in not being able
to connect to HF if AG record happens to be first one. |
Szymon Janc |
10 years ago |
1 file, +12, -18 |
| 6b4c8ca2 |
android/handsfree: Fix not selecting correct SDP HFP record
If remote device has both HFP AG and HFP HF records then we were
always selecting first record. This could result in not being able
to connect to HF if AG record happens to be first one.
Issue found on UPF 50. |
Szymon Janc |
10 years ago |
1 file, +14, -20 |
| d3be519e |
android/hal-ipc-api: HAL IPC uses 4 octects for socket channel
The documentations says that the HAL IPC uses 2 octets for socket
channels, while |struct hal_cmd_socket_{listen,connect}| contain 4
octets. This patch fixes the documentation accordingly. |
Thomas Zimmermann |
10 years ago |
1 file, +2, -2 |
| a17e6098 |
android/build: Create a target for hciconfig |
Ian Coolidge |
10 years ago |
1 file, +28, -0 |
| 0a59651c |
android/log: Add missing libc includes
Bionic is moving to reduce the amount of transitive includes,
so they should not be relied upon. |
Ian Coolidge |
10 years ago |
1 file, +3, -0 |
| ac2efeb3 |
android/pts: Update SPP TC_DevA_APP_BV_01_C instruction
This patch updates SPP test case instruction. Use haltest socket connect
command instead of rctest. |
Grzegorz Kolodziejczyk |
10 years ago |
1 file, +2, -2 |
| ab9c1582 |
android/PTS: Update ScPP tests results for PTS 6.0
This patch updates test pixits, pics, test results for ScPP profile
against android 5.0 |
Grzegorz Kolodziejczyk |
10 years ago |
3 files, +12, -11 |
| 48faf69b |
android/PTS: Update RFCOMM tests results for PTS 6.0
This patch updates test pixits, pics, test results for RFCOMM profile
against android 5.0 |
Grzegorz Kolodziejczyk |
10 years ago |
3 files, +9, -12 |
| ec002722 |
android/PTS: Update HID tests results for PTS 6.0
This patch updates test pixits, pics, test results for HID profile
against android 5.0 |
Grzegorz Kolodziejczyk |
10 years ago |
3 files, +13, -14 |
| b5d0bd05 |
android/pts: PTS tests for OPP on Android 5 and PTS 6.0 |
Sebastian Chlad |
10 years ago |
3 files, +4, -4 |
| 91bd1186 |
shared/gatt-client: Remove unused field |
Luiz Augusto von Dentz |
10 years ago |
1 file, +0, -1 |
| 86456cf9 |
shared/gatt-client: Fix memory leak
The following leak can be observed when bluetoothd is terminated while
connected:
208 (128 direct, 80 indirect) bytes in 2 blocks are definitely lost in loss record 204 of 242
at 0x4C2B946: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x4CE112: bt_gatt_client_register_notify (gatt-client.c:2557)
by 0x4999F0: characteristic_start_notify (gatt-client.c:1181)
by 0x4C03FB: process_message.isra.3 (object.c:259)
by 0x4C0C42: generic_message (object.c:1070)
by 0x518C5CE: ??? (in /usr/lib64/libdbus-1.so.3.8.10)
by 0x517E193: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.8.10)
by 0x4BB38F: message_dispatch (mainloop.c:72)
by 0x4E7EAEA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7EE87: ??? (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7F1B1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x40BACF: main (main.c:631) |
Luiz Augusto von Dentz |
10 years ago |
1 file, +4, -1 |
| 20285697 |
core/gatt: Keep objects over disconnects
This patch changes the way that the life-time for exported GATT API
objects are managed, so that they are kept alive in the case of a
disconnection if the devices are bonded. In this case, all API method
calls return an error except for StartNotify/StopNotify.
All notification sessions that were initiated during and in-between
connections are maintained and a notification callback is registered
for each session immediately on reconnection. |
Arman Uguray |
10 years ago |
2 files, +191, -36 |
| 833fa18c |
core/device: Don't check ready in service_removed
shared/gatt-client clears a given gatt-db if there's an error during its
init sequence, even if the given gatt-db was previously populated (e.g.
from a cache). This is to make sure that the database contents are at no
point invalid.
This patch removes a check for bt_gatt_client_is_ready and the
corresponding early-return from btd_device's service_removed handler, so
that other layers can be notified of invalidated gatt_db_attribute
pointers. |
Arman Uguray |
10 years ago |
1 file, +15, -2 |
| 05e877aa |
core/gatt: Implement GattCharacteristic1.StopNotify
This patch implements the StopNotify method of
org.bluez.GattCharacteristic1. |
Arman Uguray |
10 years ago |
1 file, +19, -2 |
| 127f4029 |
core/gatt: Implement GattCharacteristic1.StartNotify
This patch implements the StartNotify method of
org.bluez.GattCharacteristic1. Each call to StartNotify assigns a
session to the D-Bus sender which internally registers a unique
notify handler with the bt_gatt_client. Each received notification
or indication causes a PropertiesChanged signal to be emitted for the
"Value" property.
The notify handler gets automatically unregistered when sender
disconnects from D-Bus. |
Arman Uguray |
10 years ago |
1 file, +247, -10 |
| 1122bddd |
shared/gatt: Make register_notify cancellable
This patch makes CCC writes via bt_gatt_client_register_notify
cancellable. The following changes have been introduced:
1. bt_gatt_client_register_notify now returns the id immediately
instead of returning it in a callback. The callback is still
used to communicate ATT protocol errors.
2. A notify callback is immediately registered, so that if the
remote end sends any ATT notifications/indications, the caller
will start receiving them right away. |
Arman Uguray |
10 years ago |
3 files, +91, -62 |
| ff189f01 |
shared/att-types: Fix coding style |
Luiz Augusto von Dentz |
10 years ago |
1 file, +1, -1 |
| 2b25bd01 |
shared/gatt-client: Simplify read long value
This removes the extra queue that acts as intermediate storage, instead
the code will now storage everything in a single buffer and just realloc
while appending new chunks. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +21, -86 |
| ad410057 |
Release 5.28 |
Marcel Holtmann |
10 years ago |
2 files, +15, -1 |
| 41304925 |
build: Update library version |
Marcel Holtmann |
10 years ago |
1 file, +1, -1 |
| 01170be4 |
lib: Update company identifiers |
Marcel Holtmann |
10 years ago |
1 file, +32, -0 |
| baf0ac11 |
doc/maintainer-guidelines: Add rule for mailing list responses |
Johan Hedberg |
10 years ago |
1 file, +10, -0 |
| 11ba1d72 |
maintainer-guidelines: Add rule for new files |
Johan Hedberg |
10 years ago |
1 file, +15, -0 |
| 1fb2b903 |
doc/maintainer-guidlines: Add rule about coding-style |
Johan Hedberg |
10 years ago |
1 file, +23, -0 |
| d0c38557 |
doc: Add first draft of maintainer guidelines |
Marcel Holtmann |
10 years ago |
1 file, +66, -0 |
| bf8eedd5 |
core: Fix crash on device removal
The following crash happen when attempting to remove a device while it
is connecting, this will turn all services to unavailable without first
setting it to disconnected causing the backtrace:
Invalid read of size 8
at 0x495BF8: btd_service_connect (service.c:200)
by 0x49D942: connect_next.isra.7 (device.c:1283)
by 0x4A2B82: device_profile_connected (device.c:1328)
by 0x4A2B82: service_state_changed (device.c:5325)
by 0x4957A9: change_state (service.c:108)
by 0x495AF4: service_remove (service.c:173)
by 0x4A4BD9: device_remove (device.c:3207)
by 0x48AAC1: btd_adapter_remove_device (adapter.c:1135)
by 0x48B536: remove_device (adapter.c:2270)
by 0x4BF4CB: process_message.isra.3 (object.c:259)
by 0x4BFD12: generic_message (object.c:1070)
by 0x518C5CE: ??? (in /usr/lib64/libdbus-1.so.3.8.10)
by 0x517E193: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.8.10)
Address 0x7a22e60 is 16 bytes inside a block of size 40 free'd
at 0x4C2ACE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x4E847FE: g_free (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x495988: btd_service_unref (service.c:130)
by 0x495B26: service_remove (service.c:177)
by 0x4A4BD9: device_remove (device.c:3207)
by 0x48AAC1: btd_adapter_remove_device (adapter.c:1135)
by 0x48B536: remove_device (adapter.c:2270)
by 0x4BF4CB: process_message.isra.3 (object.c:259)
by 0x4BFD12: generic_message (object.c:1070)
by 0x518C5CE: ??? (in /usr/lib64/libdbus-1.so.3.8.10)
by 0x517E193: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.8.10)
by 0x4BA45F: message_dispatch (mainloop.c:72) |
Luiz Augusto von Dentz |
10 years ago |
1 file, +1, -0 |
| 24c79fd9 |
policy: Fix not removing timers
If service becomes unavailable, due to e.g. the device being removed,
all the related timers should be removed as well otherwise it may cause
crashes such as the following:
Invalid read of size 8
at 0x4A6597: btd_device_get_service (device.c:5335)
by 0x40F49F: policy_connect_ct (policy.c:112)
by 0x4E7F552: ??? (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7EAEA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7EE87: ??? (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7F1B1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x40BACF: main (main.c:631)
Address 0x73b9ba8 is 360 bytes inside a block of size 592 free'd
at 0x4C2ACE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x4E847FE: g_free (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x49C83F: device_free (device.c:624)
by 0x4BDB29: remove_interface (object.c:658)
by 0x4BE701: g_dbus_unregister_interface (object.c:1382)
by 0x4A49DC: btd_device_unref (device.c:5173)
by 0x41DC46: avdtp_free (avdtp.c:1138)
by 0x41EE09: connection_lost (avdtp.c:1164)
by 0x422EA5: session_cb (avdtp.c:2263)
by 0x4E7EAEA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7EE87: ??? (in /usr/lib64/libglib-2.0.so.0.4200.1)
by 0x4E7F1B1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.4200.1) |
Luiz Augusto von Dentz |
10 years ago |
1 file, +20, -0 |
| 300a94fe |
tools: Move debug key enabling after powering on finished |
Marcel Holtmann |
10 years ago |
1 file, +52, -28 |