| ee49fb1d |
shared/gatt-server: Fix read multiple charc values
According to bluetooth spec Ver 5.2, Vol 3, Part G, 4.8.4, An
ATT_ERROR_RSP PDU shall be sent by the server in response to the
ATT_READ_MULTIPLE_RSP PDU if insufficient authentication,
insufficient authorization, insufficient encryption key size, or
insufficient encryption is used by the client, or if a read operation
is not permitted on any of the Characteristic Values.
Currently if the size of the response grows larger than the MTU size,
BlueZ does an early return and not check the permission for the rest
of the characteristics. This patch forces BlueZ to check for possible
errors even though we already reach MTU size.
This patch also moves the read permission check for read multiple
characteristics so it is done before actually retrieving the
characteristics. |
Archie Pusaka |
5 years ago |
1 file, +45, -43 |
| 41fd2ebf |
avrcp: Handle not implemented response to AVRCP_LIST_PLAYER_ATTRIBUTES
If remote device respond with ctype set to not implement don't continue
parsing the packet. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -1 |
| 236fb26f |
client: Update write callbacks with invalid offset error handlers
This patch adds invalid offset handlers to write callbacks of attributes. |
Mariusz Skamra |
5 years ago |
1 file, +15, -0 |
| 1c227157 |
client: Fix possible stack corruption
DBUS_TYPE_BOOLEAN is 'int', which does not have to be the same size as
'bool'.
On architecture where bool is smaller than in, getting prepare-authorize
will corrupt the stack |
Łukasz Rymanowski |
5 years ago |
1 file, +6, -3 |
| 82b2d4cf |
mesh: On node attach, verify element/model composition only
When attaching an existing node, verify only the "elements" part
of device composition, i.e., skip verification of CID/PID/VID, CRPL
and features. |
Inga Stotland |
5 years ago |
1 file, +4, -6 |
| 9139f7b7 |
tools/mesh-cfgclient: Save node's composition in config
Store remote node's composition after successful completion
of "composition-get" command (config menu).
Show model IDs when printing node info for "list-nodes" command
(main menu). |
Inga Stotland |
5 years ago |
5 files, +367, -27 |
| 360ba4dd |
tools/mesh-cfgclient: Fix model app list parsing
This fixes parsing of Model AppKey List & Vendor Model Appkey List
messages: taking into account the packt that AppKey indices are parked
two in three octets.
Also, when printing key indices, print in both decimal and hexadecimal
formats. |
Inga Stotland |
5 years ago |
4 files, +59, -39 |
| cce9f838 |
tools/mesh-cfgclient: Fix saving KR phase to config file
This eliminates extra write of KR phase when loading keys
from the configuration file on initialization. |
Inga Stotland |
5 years ago |
4 files, +6, -6 |
| 3146b7a0 |
tools: Add support for handling experimental features |
Marcel Holtmann |
5 years ago |
1 file, +157, -11 |
| 45d0674c |
monitor: Set msft_opcode for Microsoft vendor extension |
Marcel Holtmann |
5 years ago |
1 file, +12, -1 |
| d9630510 |
monitor: Decode mgmt commands and event for experimental features |
Marcel Holtmann |
5 years ago |
1 file, +63, -0 |
| ad7d415e |
lib: Add structures and constants for experimental feature support |
Marcel Holtmann |
5 years ago |
1 file, +30, -1 |
| fb8b5e28 |
doc: Add reading and setting experimental features commands |
Marcel Holtmann |
5 years ago |
1 file, +97, -0 |
| 9c64195c |
lib: Fixing opcode definition order
Fixing what looks like a bad merge in the opcode order. |
Alain Michaud |
5 years ago |
1 file, +8, -8 |
| 286b99fb |
device: Return error when ConnectProfile DBus method fails (second fix)
This is fixup of commit 3aa815a31017 ("device: Return error when
ConnectProfile DBus method fails"). There is another place which needs
to distinguish between Connect and ConnectProfile DBus method. |
Pali Rohár |
5 years ago |
1 file, +3, -1 |
| 3b4dc84f |
a2dp: Check for valid SEP in a2dp_reconfigure
a2dp_reconfigure() is called as callback when local and remote SEP does not
have to be valid anymore, sep->lsep can be NULL.
This change fixes bluetoothd daemon crash (dereferencing NULL sep->lsep)
when audio agent disconnect in the middle of the reconfigure call. |
Pali Rohár |
5 years ago |
1 file, +12, -0 |
| 024d0776 |
doc: Update assigned-numbers.txt
Define missing rfcomm channels specified in src/profile.c |
Pali Rohár |
5 years ago |
1 file, +2, -0 |
| 00f8a3f1 |
shared/gatt-client: Ignore orphaned characteristics
The gatt discovery proceedure simplification to discover all
characteristics at once has exposed a device side issue where some
device implementation reports orphaned characteristics. While this
technically shouldn't be allowed, some instances of this were observed
(namely on some Android phones).
The fix is to simply skip over orphaned characteristics and continue
with everything else that is valid.
This has been tested as part of the Android CTS tests against an
affected platform and was confirmed to have worked around the issue. |
Alain Michaud |
5 years ago |
1 file, +7, -1 |
| 728b5101 |
shared/gatt-client: Fixing a few comment typos
This change simply fixes a few comment typos. |
Alain Michaud |
5 years ago |
1 file, +2, -2 |
| ae79b0ae |
monitor: Fix Set Host Feature
print_bitfield expects the actual value not the bit position:
< HCI Command: LE Set Host Feature (0x08|0x0074) plen 2
Bit Number: 32
Isochronous Channels (Host Support)
Bit Value: 1 |
Luiz Augusto von Dentz |
5 years ago |
1 file, +3, -2 |
| a190d50a |
a2dp: Simplify error messages
Printing things like Error string shall not be necessary since it is
already logging as error type. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +3, -4 |
| 56968065 |
log: Make error and warn log file and function information
This makes it a lot simpler to find out where errors/warnings come from
and also remove the possibility of clashes when having multiple places
where the message would be exactly the same. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +4, -28 |
| a21b6a6c |
doc: Add missing empty line |
Marcel Holtmann |
5 years ago |
1 file, +1, -0 |
| 48cef391 |
mesh: Fix publication setup for vendor models
This fixes model ID generation when processing Config Pub Set
message. Also, cleanup some debug prints. |
Inga Stotland |
5 years ago |
1 file, +4, -4 |
| cbad3121 |
mesh: Fix adding virtual subscription to a vendor model
This fixes a case when a configuration server receives a virtual
subscription add/overwrite command targeting a vendor model.
Correctly set "vendor" argument before trying to save the updated
subscrition to configuration file. |
Inga Stotland |
5 years ago |
1 file, +1, -0 |
| 9640da62 |
monitor: Use __attribute__ ((packed)) instead of __packed |
Marcel Holtmann |
5 years ago |
1 file, +1, -1 |
| e062b29c |
device: Fix reply of DisconnectProfile
When DisconnectProfile is called with disconnected UUID, bluetooth daemon
often returned error "Operation already in progress". This change fixed it
and no error message is returned for this case. |
Pali Rohár |
5 years ago |
2 files, +7, -1 |
| 307eb8cc |
src/gatt-client: allow "command" even when property not set
This modifies the GATT client characteristic WriteValue D-Bus method to
not check that the characteristic supports the requested type of
write when the "type" option is set to "command".
Before this change, if the "type" option was used and it was set to
"reliable" or "request", then BlueZ would attempt the write even if the
characteristic does not support that write type. On the other hand, if
"type" was set to "command" or was not specified, the method would
return a org.bluez.Error.NotSupported error without attempting to write.
After this change, the WriteValue method will consistently always
ignore the characteristic properties and attempt to write when the
"type" option is used instead of having a different behavior for the
"command" type. |
David Lechner |
5 years ago |
1 file, +2, -2 |
| ed4c79e6 |
gatt: Fix service_changed characteristic permission
According to bluetooth spec Ver 5.2, Vol 3, Part G, 7.1, the
service_changed characteristic is not readable. Therefore, this
patch marks it as such. |
Archie Pusaka |
5 years ago |
1 file, +1, -1 |
| 00fc2200 |
doc: Add Advertisement Monitoring API
This patch proposes an Advertisement Monitoring API for an application
to register a job of monitoring ADV reports with content filter and
RSSI thresholds. |
Miao-chen Chou |
5 years ago |
1 file, +137, -0 |
| 00805777 |
doc/adapter-api: Add Roles property
This change adds a new property to indicate the support for concurrent
roles which means that the controller has reported the appropriate
LE_Supported_States (hdev->le_states) and that the controller's driver
has reported correctly handling the various reported states. |
Alain Michaud |
5 years ago |
1 file, +8, -0 |
| b9937e92 |
device: Fix not reporting errors to Connect
The check for connected services was inverted. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -1 |
| 3aa815a3 |
device: Return error when ConnectProfile DBus method fails
Without this patch ConnectProfile DBus method does not return failure if
profile connection failed and some other profile was already connected.
This is not correct behavior as ConnectProfile DBus method should always
return error when specified profile failed to connect. This patch fixes
this it. |
Pali Rohár |
5 years ago |
1 file, +10, -6 |
| f0b7c11a |
btio: Fix error number
In commit d20ee8273e61e16c78582344f274254973cdf00f was unintentionally
negated error number. Fix this mistake. |
Pali Rohár |
5 years ago |
1 file, +2, -2 |
| a96ddbc1 |
emulator: Add support for LE Remove ISO Data Path
This implements support for LE Remove ISO Data Path command. |
Luiz Augusto von Dentz |
5 years ago |
3 files, +27, -2 |
| d6a81937 |
emulator: Add support for LE Setup ISO Data Path
This implements support for LE Setup ISO Data Path command. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +45, -0 |
| 2e9a3f8c |
emulator: Add support for LE Set Host Feature
This implements support for LE Set Host Feature |
Luiz Augusto von Dentz |
5 years ago |
1 file, +10, -0 |
| 729b007a |
emulator: Fix version number of ISO related features
There are part of Bluetooth 5.2 specification not 6.0. |
Luiz Augusto von Dentz |
5 years ago |
5 files, +38, -38 |
| ad1223b3 |
monitor: Add decoding support for HCI LE Set Host Feature
This adds decoding support for LE Set Host Feature. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +19, -0 |
| dafb2e20 |
monitor: Remove use of base defines for 5.2
Use the allocated value directly instead of base value + offset. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +60, -57 |
| b0ebdd77 |
profile: Fix reporting error message when connection failed
Some bluetooth headsets do not support connecting more then one bluetooth
profile (e.g. in parallel A2DP and HSP, or HSP and HFP) and issuing
connect() syscall for second profile returns just ECONNREFUSED.
Prior this patch bluetooth daemon for such situation reported following
message to log:
Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)
Message is incorrect as connect() syscall failed, not getpeername(). This
patch fixes this problem and logs correct error message:
Headset Voice gateway failed connect to XX:XX:XX:XX:XX:XX: Connection refused (111)
Main problem was in ext_connect() function which called bt_io_get() for
retrieving remote address (BT_IO_OPT_DEST) and if it failed then original
error from connect() syscall was masked. Because it is not possible to
retrieve BT_IO_OPT_DEST for unconnected socket, original destination
address for error message is propagated via connect_add() function in btio. |
Pali Rohár |
5 years ago |
1 file, +3, -2 |
| d20ee827 |
btio: Show destination address in connect error message
When connect() fails it is not possible to retrieve destination address as
socket is not bound. So put destination address into error message. |
Pali Rohár |
5 years ago |
1 file, +15, -5 |
| c031b5ed |
test/mesh: Remove Provisioner interface
This change removes the Provisioner Initiator from the python test
script, along with the menu commands for create, scan and add. This
makes it a cleaner Python3 example of a simple On/Off node, and a
fuller featured Provisioner/Config Client still exists in the tools
subdirectory. |
Brian Gix |
5 years ago |
1 file, +2, -140 |
| ca2163d3 |
test/mesh: Fix token format to use all 16 digits |
Brian Gix |
5 years ago |
1 file, +2, -2 |
| 71b5dbc7 |
add hog ref before adding to instances
To avoid a double hog free, need to add a ref
when adding the hog to the slist.
This bug has been reproduced with gamepad-8718
which was connecting/disconnecting frantically.
Fix also a typo in the method hog_attach_instance |
Stéphane Cerveau |
5 years ago |
1 file, +3, -3 |
| 86fbb15c |
device: Fix compilation with GCC 10
Class is using only 3 bytes so make sure GCC is aware of that.
src/device.c:397:3: note: ‘sprintf’ output between 9 and 11 bytes into a destination of size 9
397 | sprintf(class, "0x%6.6x", device->class);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors |
Szymon Janc |
5 years ago |
1 file, +1, -1 |
| 211067d5 |
avctp: Fix compilation with GCC 10
This one is a false positive but since we never use more than
UINPUT_MAX_NAME_SIZE bytes of name we can silence GCC by reducing
size of source string.
CC profiles/audio/bluetoothd-avctp.o
In function ‘uinput_create’,
inlined from ‘init_uinput’ at profiles/audio/avctp.c:1259:20:
profiles/audio/avctp.c:1188:3: error: ‘strncpy’ output may be truncated copying 79 bytes from a string of length 248 [-Werror=stringop-truncation]
1188 | strncpy(dev.name, name, UINPUT_MAX_NAME_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors |
Szymon Janc |
5 years ago |
1 file, +1, -1 |
| df66caf9 |
sap: Fix compilation with GCC 10 |
Szymon Janc |
5 years ago |
1 file, +2, -2 |
| f8f29623 |
android: Fix build with GCC 10
status and state are used to hold various enum types depending on test
and callback passed. Define them as int to avoid warnings about enum
assignment from invalid type. |
Szymon Janc |
5 years ago |
1 file, +2, -2 |
| ef0970a7 |
mesh: Fix GCC 10.0 warnings |
Brian Gix |
5 years ago |
2 files, +2, -2 |