platform/upstream/bluez.git
3 years agoa2dp: Check for valid SEP in a2dp_reconfigure
Pali Rohár [Sun, 3 May 2020 11:06:29 +0000 (13:06 +0200)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Update assigned-numbers.txt
Pali Rohár [Sun, 3 May 2020 11:11:48 +0000 (13:11 +0200)]
doc: Update assigned-numbers.txt

Define missing rfcomm channels specified in src/profile.c

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-client: Ignore orphaned characteristics
Alain Michaud [Fri, 1 May 2020 19:22:17 +0000 (19:22 +0000)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-client: Fixing a few comment typos
Alain Michaud [Fri, 1 May 2020 19:24:47 +0000 (19:24 +0000)]
shared/gatt-client: Fixing a few comment typos

This change simply fixes a few comment typos.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix Set Host Feature
Luiz Augusto von Dentz [Thu, 30 Apr 2020 21:45:25 +0000 (14:45 -0700)]
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

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoa2dp: Simplify error messages
Luiz Augusto von Dentz [Thu, 30 Apr 2020 21:35:05 +0000 (14:35 -0700)]
a2dp: Simplify error messages

Printing things like Error string shall not be necessary since it is
already logging as error type.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolog: Make error and warn log file and function information
Luiz Augusto von Dentz [Wed, 29 Apr 2020 21:01:12 +0000 (14:01 -0700)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add missing empty line
Marcel Holtmann [Fri, 1 May 2020 17:52:39 +0000 (19:52 +0200)]
doc: Add missing empty line

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Use __attribute__ ((packed)) instead of __packed
Marcel Holtmann [Wed, 29 Apr 2020 17:46:36 +0000 (19:46 +0200)]
monitor: Use __attribute__ ((packed)) instead of __packed

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodevice: Fix reply of DisconnectProfile
Pali Rohár [Sun, 26 Apr 2020 21:02:02 +0000 (23:02 +0200)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agosrc/gatt-client: allow "command" even when property not set
David Lechner [Tue, 28 Apr 2020 17:51:49 +0000 (12:51 -0500)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Fix service_changed characteristic permission
Archie Pusaka [Tue, 21 Apr 2020 07:59:14 +0000 (15:59 +0800)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add Advertisement Monitoring API
Miao-chen Chou [Mon, 27 Apr 2020 20:12:19 +0000 (13:12 -0700)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc/adapter-api: Add Roles property
Alain Michaud [Thu, 23 Apr 2020 14:23:05 +0000 (14:23 +0000)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodevice: Fix not reporting errors to Connect
Luiz Augusto von Dentz [Fri, 24 Apr 2020 17:32:16 +0000 (10:32 -0700)]
device: Fix not reporting errors to Connect

The check for connected services was inverted.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodevice: Return error when ConnectProfile DBus method fails
Pali Rohár [Thu, 23 Apr 2020 23:32:43 +0000 (01:32 +0200)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtio: Fix error number
Pali Rohár [Thu, 23 Apr 2020 23:34:14 +0000 (01:34 +0200)]
btio: Fix error number

In commit d20ee8273e61e16c78582344f274254973cdf00f was unintentionally
negated error number. Fix this mistake.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator: Add support for LE Remove ISO Data Path
Luiz Augusto von Dentz [Thu, 23 Apr 2020 21:50:55 +0000 (14:50 -0700)]
emulator: Add support for LE Remove ISO Data Path

This implements support for LE Remove ISO Data Path command.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator: Add support for LE Setup ISO Data Path
Luiz Augusto von Dentz [Wed, 22 Apr 2020 22:09:33 +0000 (15:09 -0700)]
emulator: Add support for LE Setup ISO Data Path

This implements support for LE Setup ISO Data Path command.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator: Add support for LE Set Host Feature
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:46:34 +0000 (14:46 -0700)]
emulator: Add support for LE Set Host Feature

This implements support for LE Set Host Feature

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator: Fix version number of ISO related features
Luiz Augusto von Dentz [Tue, 21 Apr 2020 22:13:20 +0000 (15:13 -0700)]
emulator: Fix version number of ISO related features

There are part of Bluetooth 5.2 specification not 6.0.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add decoding support for HCI LE Set Host Feature
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:32:19 +0000 (14:32 -0700)]
monitor: Add decoding support for HCI LE Set Host Feature

This adds decoding support for LE Set Host Feature.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Remove use of base defines for 5.2
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:31:16 +0000 (14:31 -0700)]
monitor: Remove use of base defines for 5.2

Use the allocated value directly instead of base value + offset.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoprofile: Fix reporting error message when connection failed
Pali Rohár [Wed, 22 Apr 2020 17:01:05 +0000 (19:01 +0200)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtio: Show destination address in connect error message
Pali Rohár [Wed, 22 Apr 2020 17:01:04 +0000 (19:01 +0200)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoadd hog ref before adding to instances
Stéphane Cerveau [Mon, 20 Apr 2020 18:40:29 +0000 (20:40 +0200)]
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

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodevice: Fix compilation with GCC 10
Szymon Janc [Mon, 20 Apr 2020 12:07:05 +0000 (14:07 +0200)]
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

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavctp: Fix compilation with GCC 10
Szymon Janc [Mon, 20 Apr 2020 12:07:04 +0000 (14:07 +0200)]
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

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agosap: Fix compilation with GCC 10
Szymon Janc [Mon, 20 Apr 2020 12:07:03 +0000 (14:07 +0200)]
sap: Fix compilation with GCC 10

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoandroid: Fix build with GCC 10
Szymon Janc [Mon, 20 Apr 2020 12:07:02 +0000 (14:07 +0200)]
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.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator: Fix command line parameters with optional argument
Olivier Martin [Tue, 7 Apr 2020 19:44:00 +0000 (21:44 +0200)]
emulator: Fix command line parameters with optional argument

Some parameters were missing the indication that additional
argument could be expected.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Update documentation for HSP and HFP profiles
Pali Rohár [Tue, 14 Apr 2020 20:46:02 +0000 (22:46 +0200)]
doc: Update documentation for HSP and HFP profiles

Fix information about default rfcomm channel number in HFP HS role
(it is 7, not 6) and add documentation about default values.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoprofile: Return -ENOENT for HSP AG
Luiz Augusto von Dentz [Tue, 14 Apr 2020 20:23:23 +0000 (13:23 -0700)]
profile: Return -ENOENT for HSP AG

HSP AG role doesn't have any supported features.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoprofile: Add default SDP record for Headset role of HSP 1.2
Pali Rohár [Mon, 13 Apr 2020 16:25:13 +0000 (18:25 +0200)]
profile: Add default SDP record for Headset role of HSP 1.2

This would allow D-Bus agents to implement HS role of HSP profile.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoprofile: Export Remote Audio Volume Control SDP value
Pali Rohár [Mon, 13 Apr 2020 16:25:12 +0000 (18:25 +0200)]
profile: Export Remote Audio Volume Control SDP value

Remote Audio Volume Control property in SDP record for HSP HS role
indicates if device supports volume control.

It is required for D-Bus agents which implements audio part of HSP
profile to know if remote device supports volume control or not.

With this change bluez exports status of this SDP property via firt bit
in Features entry in NewConnection() DBus callback method, like for HFP
profile.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoprofile: Remove duplicate initialization of version and profile
Luiz Augusto von Dentz [Mon, 13 Apr 2020 23:43:42 +0000 (16:43 -0700)]
profile: Remove duplicate initialization of version and profile

These values are always set later by send_new_connection.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoprofile: Fix not setting default features for HFP 1.7
Pali Rohár [Mon, 13 Apr 2020 16:25:11 +0000 (18:25 +0200)]
profile: Fix not setting default features for HFP 1.7

When HFP AG features are not set then according to HFP 1.7.2
specification it has value 0b001001.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotest/example-advertisement: Fix advertising when discoverable
Szymon Janc [Thu, 9 Apr 2020 10:30:35 +0000 (12:30 +0200)]
test/example-advertisement: Fix advertising when discoverable

If adapter is discoverable (or LE-only) advertising was failing due
to too big adv data being set. Make sure there is enough space left
for flags if needed.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for opening extra mgmt socket for events
Marcel Holtmann [Wed, 8 Apr 2020 08:08:24 +0000 (10:08 +0200)]
monitor: Add support for opening extra mgmt socket for events

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/att: Check the signature of att packets
Archie Pusaka [Tue, 7 Apr 2020 08:56:09 +0000 (16:56 +0800)]
shared/att: Check the signature of att packets

Tested to pass these BT certification test
SM/MAS/SIGN/BV-03-C
SM/MAS/SIGN/BI-01-C

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agounit/test-crypto: test for bt_crypto_verify_att_sign
Archie Pusaka [Tue, 7 Apr 2020 08:56:08 +0000 (16:56 +0800)]
unit/test-crypto: test for bt_crypto_verify_att_sign

Adding tests for verifying att signature

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/crypto: Add bt_crypto_verify_att_sign
Archie Pusaka [Tue, 7 Apr 2020 08:56:07 +0000 (16:56 +0800)]
shared/crypto: Add bt_crypto_verify_att_sign

This is used to verify the signature of incoming ATT packets.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoclient: Make advertise instances default to discoverable
Luiz Augusto von Dentz [Tue, 7 Apr 2020 00:24:08 +0000 (17:24 -0700)]
client: Make advertise instances default to discoverable

The more common case is that advertisements are discoverable not the
other way around.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Fix not sending any data when server supports AcquireWrite
Luiz Augusto von Dentz [Mon, 6 Apr 2020 21:19:03 +0000 (14:19 -0700)]
gatt: Fix not sending any data when server supports AcquireWrite

msg.msg_iovlen should be set to 1 to forward the data received over the
file descriptor.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix off-by-one error with IRKs and LTKs
Marcel Holtmann [Sun, 5 Apr 2020 18:51:36 +0000 (20:51 +0200)]
monitor: Fix off-by-one error with IRKs and LTKs

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Update company identifiers
Marcel Holtmann [Sun, 5 Apr 2020 07:58:31 +0000 (09:58 +0200)]
lib: Update company identifiers

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Define bus controller value for VIRTIO transport
Marcel Holtmann [Sat, 4 Apr 2020 20:24:57 +0000 (22:24 +0200)]
doc: Define bus controller value for VIRTIO transport

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools/hciattach_ath3k: Load BT board data based on country code
Sonny Sasaka [Tue, 31 Mar 2020 00:33:55 +0000 (17:33 -0700)]
tools/hciattach_ath3k: Load BT board data based on country code

BT board data file PS_ASIC-<country-code>.pst is loaded based
on country code. If not exist, default BT board data file
PS_ASIC.pst would be loaded.

This patch doesn't define how to get the country code at the moment, but
future patches can supply the country code in the region parameter of
get_ps_file_name.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add details for reading security information command
Marcel Holtmann [Thu, 2 Apr 2020 13:21:18 +0000 (15:21 +0200)]
lib: Add details for reading security information command

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools: Add command for reading the security information
Marcel Holtmann [Thu, 2 Apr 2020 13:20:53 +0000 (15:20 +0200)]
tools: Add command for reading the security information

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add Read Security Information command description
Marcel Holtmann [Thu, 2 Apr 2020 13:20:09 +0000 (15:20 +0200)]
doc: Add Read Security Information command description

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools: Fix command for reading extended controller information
Marcel Holtmann [Thu, 2 Apr 2020 11:45:41 +0000 (13:45 +0200)]
tools: Fix command for reading extended controller information

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools: Add command for toggling wideband speech feature
Marcel Holtmann [Thu, 2 Apr 2020 11:36:41 +0000 (13:36 +0200)]
tools: Add command for toggling wideband speech feature

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add missing text for wideband speech command
Marcel Holtmann [Thu, 2 Apr 2020 11:36:00 +0000 (13:36 +0200)]
lib: Add missing text for wideband speech command

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Fix Acquire* reply handling
Luiz Augusto von Dentz [Wed, 1 Apr 2020 23:27:33 +0000 (16:27 -0700)]
gatt: Fix Acquire* reply handling

Originally these operation did not set any owner_queue which caused
them to crash if the attribute is freed before the respose, to fix that
the reply will now check if owner_queue was reset to NULL which means
the attribute is no longer available but the owner_queue was never set
in the first place so this ensures they are now setup properly.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix missing setting string
Howard Chung [Tue, 31 Mar 2020 03:16:43 +0000 (11:16 +0800)]
monitor: Fix missing setting string

Add wideband speech to setting string

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Check error before retrying if Acquire* failed
Luiz Augusto von Dentz [Tue, 31 Mar 2020 21:05:48 +0000 (14:05 -0700)]
gatt: Check error before retrying if Acquire* failed

If the method has timed out it probably means the application is not
responding so a follow up method call might have the same result, also
in case the application returns org.bluez.Error.Failed it indicates the
operation has been attempted but failed which again most likely will
have the same result if reattempted.

Change-Id: Ie768f1e3613957f362b65fba12a03d0ee21bce9c
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Fix possible crashes when disconnecting
Luiz Augusto von Dentz [Tue, 31 Mar 2020 17:28:23 +0000 (10:28 -0700)]
gatt: Fix possible crashes when disconnecting

If there are pending AcquireWrite or AcquireNotify when disconnecting
the attribute object may be freed (e.g. device is temporary) leading to
the following backtrace:

bluetoothd[369928]: src/gatt-database.c:gatt_db_service_removed() Local GATT service removed
bluetoothd[369928]: src/adapter.c:adapter_service_remove() /org/bluez/hci1
bluetoothd[369928]: src/adapter.c:remove_uuid() sending remove uuid command for index 1
bluetoothd[369928]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x1002e
bluetoothd[369928]: src/gatt-database.c:send_notification_to_device() GATT server sending indication
bluetoothd[369928]: src/device.c:gatt_debug() Write Complete: err -125
bluetoothd[369928]: src/gatt-database.c:client_disconnect_cb() Client disconnected
bluetoothd[369928]: src/advertising.c:client_disconnect_cb() Client disconnected
bluetoothd[369928]: Failed to acquire write: org.freedesktop.DBus.Error.NoReply

Program received signal SIGSEGV, Segmentation fault.
0x0000555555631450 in acquire_write_reply (message=0x55555583dec0, user_data=0x555555843e40) at src/gatt-database.c:2437
2437            send_write(op->device, op->attrib, chrc->proxy, NULL, op->id,

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt: Fix NULL pointer dereference
Szymon Janc [Tue, 31 Mar 2020 10:45:32 +0000 (12:45 +0200)]
shared/gatt: Fix NULL pointer dereference

bluetoothd[363094]: src/device.c:device_connect_le() Connection attempt to: 00:AA:01:00:00:23

Program received signal SIGSEGV, Segmentation fault.
write_complete_cb (attr=0x55555580aa30, err=-110, user_data=0x55555585f7c0) at src/shared/gatt-server.c:793
793             util_debug(server->debug_callback, server->debug_data,
(gdb) bt
 #0  write_complete_cb (attr=0x55555580aa30, err=-110, user_data=0x55555585f7c0) at src/shared/gatt-server.c:793
 #1  0x00005555556a5852 in pending_write_result (p=0x555555866030, err=<optimized out>) at src/shared/gatt-db.c:162
 #2  0x00005555556a5ac7 in write_timeout (user_data=0x555555866030) at src/shared/gatt-db.c:1879
 #3  0x00005555556a9b15 in timeout_callback (user_data=user_data@entry=0x555555864b20) at src/shared/timeout-glib.c:34
 #4  0x00007ffff7e1f081 in g_timeout_dispatch (source=source@entry=0x555555864f00, callback=0x5555556a9b00 <timeout_callback>, user_data=0x555555864b20) at ../glib/gmain.c:4705
 #5  0x00007ffff7e1e570 in g_main_dispatch (context=0x5555557d9630) at ../glib/gmain.c:3216
 #6  g_main_context_dispatch (context=context@entry=0x5555557d9630) at ../glib/gmain.c:3881
 #7  0x00007ffff7e1e900 in g_main_context_iterate (context=0x5555557d9630, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3954
 #8  0x00007ffff7e1ebf3 in g_main_loop_run (loop=0x5555557d75d0) at ../glib/gmain.c:4148
 #9  0x00005555556a9dbd in mainloop_run () at src/shared/mainloop-glib.c:79
 #10 0x00005555556aa36a in mainloop_run_with_signal (func=<optimized out>, user_data=0x0) at src/shared/mainloop-notify.c:201
 #11 0x00005555555bb9e3 in main (argc=<optimized out>, argv=<optimized out>) at src/main.c:770

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomain: Fix GATT option parsing
Szymon Janc [Tue, 31 Mar 2020 12:07:25 +0000 (14:07 +0200)]
main: Fix GATT option parsing

Key name is Channels.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore/device: Handle Just-Works auto-accept
Sonny Sasaka [Sat, 28 Mar 2020 00:33:18 +0000 (17:33 -0700)]
core/device: Handle Just-Works auto-accept

The kernel starts to always request confirmation to BlueZ daemon for
Just-Works pairing. In this patch the daemon does auto-accept if the
client has clearly indicated a pairing intent by calling the Pair()
D-Bus API.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Enable connecting to EATT channel using Ext-Flowctl mode
Luiz Augusto von Dentz [Mon, 16 Mar 2020 22:16:12 +0000 (15:16 -0700)]
gatt: Enable connecting to EATT channel using Ext-Flowctl mode

This makes use of BT_IO_MODE_EXT_FLOWCTL to connect to EATT channels.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools/l2cap-tester: Add test for Ext-Flowctl mode
Luiz Augusto von Dentz [Tue, 10 Mar 2020 20:44:27 +0000 (13:44 -0700)]
tools/l2cap-tester: Add test for Ext-Flowctl mode

This adds tests for Ext-Flowctl which uses ECRED PDUs.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoemulator/bthost: Add support for ECRED Connection request/response
Luiz Augusto von Dentz [Tue, 10 Mar 2020 20:09:52 +0000 (13:09 -0700)]
emulator/bthost: Add support for ECRED Connection request/response

This adds support for ECRED Connection request/response which will be
used by l2cap-runner to test L2CAP_MODE_EXT_FLOWCTL mode.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agol2test: Add support for BT_MODE_EXT_FLOWCTL
Luiz Augusto von Dentz [Fri, 2 Aug 2019 07:44:43 +0000 (10:44 +0300)]
l2test: Add support for BT_MODE_EXT_FLOWCTL

This enables using l2test to connect or listen with
BT_MODE_EXT_FLOWCTL.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtio: Add mode to for Enhanced Credit Mode
Luiz Augusto von Dentz [Wed, 31 Jul 2019 10:56:24 +0000 (13:56 +0300)]
btio: Add mode to for Enhanced Credit Mode

This adds BT_IO_MODE_EXT_FLOWCTL which directly maps to
BT_MODE_EXT_FLOWCTL.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add definitions for Enhanced Credits Based Mode
Luiz Augusto von Dentz [Mon, 29 Jul 2019 10:09:57 +0000 (13:09 +0300)]
lib: Add definitions for Enhanced Credits Based Mode

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix decoding of LE Setup ISO Data Path command
Luiz Augusto von Dentz [Mon, 30 Mar 2020 21:43:12 +0000 (14:43 -0700)]
monitor: Fix decoding of LE Setup ISO Data Path command

LE Setup ISO Data Path command contains not only the transport but also
the codec along with its configuration.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add identifier for VIRTIO devices
Marcel Holtmann [Mon, 30 Mar 2020 18:32:53 +0000 (20:32 +0200)]
lib: Add identifier for VIRTIO devices

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for Read Local Simple Pairing Options command
Marcel Holtmann [Mon, 30 Mar 2020 18:24:06 +0000 (20:24 +0200)]
monitor: Add support for Read Local Simple Pairing Options command

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtmgmt: Rename version command to revision
Luiz Augusto von Dentz [Mon, 30 Mar 2020 17:28:08 +0000 (10:28 -0700)]
btmgmt: Rename version command to revision

version is already handled by btshell and always refer to BlueZ version
rather than MGMT version, so this renames the command to revision to
avoid having the clash of command names.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobtmgmt: Fix irks command parsing
Luiz Augusto von Dentz [Mon, 30 Mar 2020 17:23:16 +0000 (10:23 -0700)]
btmgmt: Fix irks command parsing

btshell does not allow use of nested parameter delimiters.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Adding missing settings descriptions in btmon
Alain Michaud [Fri, 27 Mar 2020 15:03:53 +0000 (15:03 +0000)]
monitor: Adding missing settings descriptions in btmon

This change adds the missing settings descriptions from btmon.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavdtp: fix delay report valid states
Archie Pusaka [Fri, 20 Mar 2020 05:14:25 +0000 (13:14 +0800)]
avdtp: fix delay report valid states

According to AVDTP specification section 6.19,
avdtp_delayreport_cmd could also be received when the state of SEP
is open.

Therefore, updating to accommodate such condition.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agotools/btmgmt: Fix missing setting string in btmgmt
Howard Chung [Thu, 26 Mar 2020 08:14:27 +0000 (16:14 +0800)]
tools/btmgmt: Fix missing setting string in btmgmt

Both PHY configuration and wide band speech are not set in
btmgmt.c.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoautopair: Fix compiler warning
Sonny Sasaka [Tue, 24 Mar 2020 19:49:42 +0000 (12:49 -0700)]
autopair: Fix compiler warning

With clang, comparing an array with NULL generates a warning because the
value is always non-NULL. With maintainer mode enabled, this becomes a
compilation error.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoavdtp: Fix crashes in avdtp_abort
Howard Chung [Tue, 24 Mar 2020 03:21:45 +0000 (11:21 +0800)]
avdtp: Fix crashes in avdtp_abort

In avdtp_abort, if setup->stream is NULL, trying to access
stream->lsep will crash.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: Add LEAutoSecurity setting to input.conf
Luiz Augusto von Dentz [Wed, 11 Mar 2020 18:43:21 +0000 (11:43 -0700)]
input: Add LEAutoSecurity setting to input.conf

LEAutoSecurity can be used to enable/disable automatic upgrades of
security for LE devices, by default it is enabled so existing devices
that did not require security and were not bonded will automatically
upgrade the security.

Note: Platforms disabling this setting would require users to manually
bond the device which may require changes to the user interface to
always force bonding for input devices as APIs such as Device.Connect
will no longer work which maybe perceived as a regression.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoinput: hog: Attempt to set security level if not bonded
Luiz Augusto von Dentz [Tue, 10 Mar 2020 16:59:07 +0000 (09:59 -0700)]
input: hog: Attempt to set security level if not bonded

This attempts to set the security if the device is not bonded, the
kernel will block any communication on the ATT socket while bumping
the security and if that fails the device will be disconnected which
is better than having the device dangling around without being able to
communicate with it until it is properly bonded.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoRelease 5.54
Marcel Holtmann [Sun, 15 Mar 2020 06:35:59 +0000 (07:35 +0100)]
Release 5.54

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agobuild: Update library version
Marcel Holtmann [Sun, 15 Mar 2020 06:26:51 +0000 (07:26 +0100)]
build: Update library version

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Add version number for Bluetooth 5.2
Marcel Holtmann [Sun, 15 Mar 2020 06:25:19 +0000 (07:25 +0100)]
lib: Add version number for Bluetooth 5.2

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Fix for incorrect len in L2CAP Enhanced Reconfigure
Łukasz Rymanowski [Thu, 12 Mar 2020 07:30:45 +0000 (08:30 +0100)]
monitor: Fix for incorrect len in L2CAP Enhanced Reconfigure

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoa2dp: Fix race when connecting and being connected at the same time
Archie Pusaka [Thu, 12 Mar 2020 05:54:37 +0000 (13:54 +0800)]
a2dp: Fix race when connecting and being connected at the same time

There is a possibility where BlueZ initiate an A2DP connection just
around the same time as the peripheral also initiate it.

One scenario is the peripheral initiate the connection first, so
confirm_cb() on /profiles/audio/a2dp.c is called. However, while we
are waiting for the authentication step, BlueZ initiate a connection
to the peripheral, therefore a2dp_sink_connect() is called, which
from there a2dp_avdtp_get() is called.

If this happens: When calling confirm_cb(), chan for the
corresponding device is created.

Then when calling a2dp_avdtp_get(), chan will be found as it is
created in confirm_cb(), and the value of chan->io is not NULL.
However, a NULL is supplied instead to create a new session and
assigned to chan->session.

Then when calling connect_cb(), chan->session will NOT be NULL, as
it is assigned in a2dp_avdtp_get(). Nevertheless, chan->session is
always assigned a new value.

These cause failure in connection.

Therefore, fixing this by supplying the value of chan->io inside
a2dp_avdtp_get() (it's going to be NULL on the normal case so it is
fine), and check whether chan->session already assigned inside
connect_cb().

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoHID accepts bonded device connections only.
Alain Michaud [Tue, 10 Mar 2020 02:35:18 +0000 (02:35 +0000)]
HID accepts bonded device connections only.

This change adds a configuration for platforms to choose a more secure
posture for the HID profile.  While some older mice are known to not
support pairing or encryption, some platform may choose a more secure
posture by requiring the device to be bonded  and require the
connection to be encrypted when bonding is required.

Reference:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.html
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoHOGP must only accept data from bonded devices.
Alain Michaud [Tue, 10 Mar 2020 02:35:16 +0000 (02:35 +0000)]
HOGP must only accept data from bonded devices.

HOGP 1.0 Section 6.1 establishes that the HOGP must require bonding.

Reference:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.htm
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Mention the Wideband Speech setting and add new kernel version
Marcel Holtmann [Sun, 8 Mar 2020 08:02:51 +0000 (09:02 +0100)]
doc: Mention the Wideband Speech setting and add new kernel version

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agolib: Adding definitions for Wide Band Speech configuration
Alain Michaud [Wed, 4 Mar 2020 20:31:52 +0000 (20:31 +0000)]
lib: Adding definitions for Wide Band Speech configuration

This change adds the corresponding user space definition for wide band
speech.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add settings and command for Wideband Speech support
Marcel Holtmann [Wed, 4 Mar 2020 07:37:43 +0000 (08:37 +0100)]
doc: Add settings and command for Wideband Speech support

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agodoc: Add another missing PHY Configuration value
Marcel Holtmann [Wed, 4 Mar 2020 07:35:14 +0000 (08:35 +0100)]
doc: Add another missing PHY Configuration value

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agomonitor: Add support for decoding EATT
Luiz Augusto von Dentz [Fri, 17 May 2019 11:13:23 +0000 (14:13 +0300)]
monitor: Add support for decoding EATT

This decodes packets received over EATT PSM.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agocore: Add support for setting the number of GATT bearers
Luiz Augusto von Dentz [Tue, 7 Jan 2020 19:47:49 +0000 (11:47 -0800)]
core: Add support for setting the number of GATT bearers

This adds option to set the numbers of GATT Channels/Bearers to be
connected in main.conf.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Add support for Notify Multiple
Luiz Augusto von Dentz [Fri, 6 Sep 2019 11:09:37 +0000 (14:09 +0300)]
gatt: Add support for Notify Multiple

This adds support for Notify Multiple procedure marking its bit as
supported in the Client Features.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt: Add support for Handle Value Multiple Notifications
Luiz Augusto von Dentz [Thu, 6 Jun 2019 06:22:56 +0000 (09:22 +0300)]
shared/gatt: Add support for Handle Value Multiple Notifications

Handle Value Multiple Notification can be used to notify multiple
values at once.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-client: Add support for Read Multiple Variable Length
Luiz Augusto von Dentz [Mon, 3 Jun 2019 13:21:19 +0000 (16:21 +0300)]
shared/gatt-client: Add support for Read Multiple Variable Length

The Read Multiple Variable Length Request is used to request that the
server read two or more values of a set of attributes that have a
variable or unknown value length and return their values in a
Read Multiple Variable Length Response.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-server: Add support for Read Multiple Variable Length
Luiz Augusto von Dentz [Mon, 3 Jun 2019 12:42:41 +0000 (15:42 +0300)]
shared/gatt-server: Add support for Read Multiple Variable Length

The Read Multiple Variable Length Request is used to request that the
server read two or more values of a set of attributes that have a
variable or unknown value length and return their values in a
Read Multiple Variable Length Response.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agogatt: Enable EATT bearer support
Luiz Augusto von Dentz [Thu, 26 Dec 2019 22:01:06 +0000 (14:01 -0800)]
gatt: Enable EATT bearer support

This adds support for EATT connections.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshared/gatt-client: Add support for EATT features
Luiz Augusto von Dentz [Fri, 10 May 2019 07:35:00 +0000 (10:35 +0300)]
shared/gatt-client: Add support for EATT features

This enables EATT in the Client Features if the EATT characteristic is
present in the database.

Change-Id: I174d644283b8026b2b82e2c1bd2d9aeb5f5bcdbe
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agoshare/att: Add EATT support
Luiz Augusto von Dentz [Thu, 9 May 2019 08:06:25 +0000 (11:06 +0300)]
share/att: Add EATT support

This adds EATT support to bt_att, EATT bearers are handled as
additional channels which auto allocated for queued requests.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
3 years agosrc/profile: Ensure class UUID matches before connecting profile
Archie Pusaka [Mon, 2 Mar 2020 04:07:31 +0000 (12:07 +0800)]
src/profile: Ensure class UUID matches before connecting profile

According to bluetooth spec Ver 5.1, Vol 3, Part B, 4.7.2, there
might be multiple service records returned in a SDP Service Search
Attribute Response. Also, according to 2.5.2, the service pattern
can match any UUID contained within the service record, it doesn't
have to match only some specific attributes of the record.

Therefore, before using the service record to connect to any
profile, first we must check that the service class ID of the
service record matches with whatever UUID specified in the service
pattern we are looking for.

This patch checks the service class ID of the records against the
requested UUID whenever bt_search_service() is called and filter
out the ones that don't match. For the alternative where filtering
is not applied, use the method bt_search().

Change-Id: Ia0489fd81e0c6e21d57fe907b36b696d826b18a4
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>