platform/upstream/bluez.git
4 years agobuild: Update library version
Marcel Holtmann [Thu, 19 Sep 2019 17:36:43 +0000 (19:36 +0200)]
build: Update library version

Change-Id: Idd899dc4dfd3a15d03053d614ea9e70882946c55
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode L2CAP channel mode
Luiz Augusto von Dentz [Fri, 13 Sep 2019 10:54:07 +0000 (13:54 +0300)]
monitor: Decode L2CAP channel mode

This decodes the L2CAP channel mode of each frame:

> ACL Data RX: Handle 3585 flags 0x02 dlen 12
      Channel: 64 len 8 [PSM 127 mode Basic (0x00)] {chan 0}
< ACL Data TX: Handle 3585 flags 0x00 dlen 9
      Channel: 65 len 5 sdu 3 [PSM 127 mode LE Flow Control (0x80)] {chan 1}

Change-Id: I45d093dbb336b00e16c96bc99d3c693d416563c2
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add proper decoding of LE flowctl mode
Luiz Augusto von Dentz [Fri, 13 Sep 2019 07:08:13 +0000 (10:08 +0300)]
monitor: Add proper decoding of LE flowctl mode

This enables decoding LE flowctl mode properly and print out the
SDU.

Change-Id: I3bb08559418dc353de06b979c1c4dc86c3998069
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodoc: Remove uneeded dbus API for App Key Refresh
Brian Gix [Fri, 6 Sep 2019 16:24:33 +0000 (09:24 -0700)]
doc: Remove uneeded dbus API for App Key Refresh

Change-Id: I6a3dac56c911d2234dd8513828d49ef325fb6d0c
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/shell: fix help message typo
Ronan Pigott [Wed, 14 Aug 2019 23:00:34 +0000 (16:00 -0700)]
shared/shell: fix help message typo

Change-Id: Ibe8b83dca57b93dc937ecc77c938b6c6c6819a28
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agocompletion: add bluetoothctl zsh completions
Ronan Pigott [Sat, 17 Aug 2019 06:34:51 +0000 (23:34 -0700)]
completion: add bluetoothctl zsh completions

This zsh compdef provides completions for the bluetoothctl command.

It has been modified from version 1 of this patch to get the command
names and descriptions from the newly introduced --zsh-complete.

It utilizes the output of `bluetoothctl devices` or
`bluetoothctl controllers` to provide a descriptive completion menu
in those contexts.

e.g.

$ bluetoothctl connect <TAB>
04:52:C7:0C:D4:A7  -- Bose QuietComfort 35
40:4E:36:D9:8F:28  -- Pixel 2
A4:38:CC:20:5D:E0  -- Pro Controller

Change-Id: Ib06fa64d1cf86b6bc6439d6f99ef36d042ed3ec1
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/shell: add --zsh-complete option
Ronan Pigott [Sat, 17 Aug 2019 06:34:50 +0000 (23:34 -0700)]
shared/shell: add --zsh-complete option

This adds a new long form option --zsh-complete to provide all available
commands in an output format suitable for parsing by zsh or other shell
completion scripts.

Invoke like: `bluetoothctl --zsh-complete help`

There is no corresponding short form option.

Change-Id: Idafb56b224f92a786223e43cae63babd1740834c
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient/main: add help option for available args
Ronan Pigott [Sat, 17 Aug 2019 06:34:49 +0000 (23:34 -0700)]
client/main: add help option for available args

This option exists to facilitate external completion of commands that
have specially defined arguments. It effectively adds two new commands
to bluetoothctl with the following output:

$ bluetoothctl agent help
on
off
DisplayOnly
DisplayYesNo
KeyboardDisplay
KeyboardOnly
NoInputNoOutput

$ bluetoothctl advertise help
on
off
peripheral
broadcast

Shell completion scripts can then parse this output to provide
completions for those commands.

Change-Id: Ia431ea11d7a1cb344b512f0180bd0ebac0754567
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-client: Automatically add CCC when discovering
Luiz Augusto von Dentz [Mon, 26 Aug 2019 11:51:44 +0000 (14:51 +0300)]
shared/gatt-client: Automatically add CCC when discovering

The spec mandates that a CCC exists if either notify or indicate
property is marked:

BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 3, Part G page 2357

  "If set, the Client Characteristic Configuration Descriptor shall
  exist."

Change-Id: Ib588c87cc3be81e439ff8f7678b7e451b5c34825
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotools: Tweak script to get Company IDS from SIG
Brian Gix [Tue, 20 Aug 2019 19:44:55 +0000 (12:44 -0700)]
tools: Tweak script to get Company IDS from SIG

The Bluetooth SIG website requires a trailing "/" on the web page for
the curl command to work.

Change-Id: Ie18c0711d52335d6df2a6bfb08e2bc84e37545e4
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Fix not able to select attributes if parent exists
Luiz Augusto von Dentz [Tue, 20 Aug 2019 10:40:10 +0000 (13:40 +0300)]
client: Fix not able to select attributes if parent exists

When selecting attributes by UUID the code was not checking attributes
that are not a children of the current selected attribute.

Change-Id: If08b0bc5b7e9c36931585fb3f18f35c9db2616ab
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Allow UUID 16 bits on select-attribute
Luiz Augusto von Dentz [Tue, 20 Aug 2019 10:38:54 +0000 (13:38 +0300)]
client: Allow UUID 16 bits on select-attribute

This allow passing UUIDs on 16 bits format.

Change-Id: I974ab05787c241cff05b344efba70683b96d679f
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotest: Add example-player
Luiz Augusto von Dentz [Fri, 12 Jul 2019 15:10:13 +0000 (18:10 +0300)]
test: Add example-player

This adds an example of registering a player with use of
RegisterApplication.

Change-Id: I3abaf08554f34062befe3f1a3dfcda0b633481f2
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotest: Add example-endpoint
Luiz Augusto von Dentz [Fri, 12 Jul 2019 12:24:16 +0000 (15:24 +0300)]
test: Add example-endpoint

This adds an example of registering an endpoint with use of
RegisterApplication.

Change-Id: I6667abb66b7ee6986fcae90cdc18793d0f0fbd01
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomedia: Add implementation of RegisterApplication
Luiz Augusto von Dentz [Thu, 11 Jul 2019 13:38:58 +0000 (16:38 +0300)]
media: Add implementation of RegisterApplication

This implements RegisterApplication registering any proxy which does
implement either MediaEndpoint or MediaPlayer.

Change-Id: Ib6bab82176f9941662511f47facc4f8d1f3d31e4
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodoc/media-api: Add RegisterApplication method
Luiz Augusto von Dentz [Thu, 11 Jul 2019 13:36:28 +0000 (16:36 +0300)]
doc/media-api: Add RegisterApplication method

This uses application ObjectManager to discover the MediaEndpoint and
MediaPlayer object of an application and deprecates the use of
RegisterEndpoint and RegisterPlayer.

Change-Id: Ieb647e431ea32fc5934de3b84098c9a171f990e6
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoinput/hog: Remove HID device after HoG device disconnects
Benjamin Tissoires [Fri, 14 Jun 2019 15:31:25 +0000 (17:31 +0200)]
input/hog: Remove HID device after HoG device disconnects

When the Bluetooth LE device disconnects, make sure to also destroy the
uHID device so that we don't have a lingering HID device accessible from
user-space.

This also fixes the input subsystem never seeing the device reattaching,
causing settings that should be applied on connection not to be applied.

https://bugzilla.kernel.org/show_bug.cgi?id=202909

Tested-by: Bastien Nocera <hadess@hadess.net>
Change-Id: Idbc431d733c5bfba710b9d455e1dc564e2e3c302
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodoc: Cleanup API Provisioner1 interface
Brian Gix [Thu, 11 Jul 2019 22:59:44 +0000 (15:59 -0700)]
doc: Cleanup API Provisioner1 interface

Modified the RequestProvData In and Out param list to eliminate
parameters which can be provided by the Node which owns the
procedure, and clean-up the actual error list.

Change-Id: I00a7f511f38fd7a7060f4845e6dfb184c4a5791d
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoemulator: Fix condition check in btdev_create()
Inga Stotland [Thu, 4 Jul 2019 07:01:10 +0000 (00:01 -0700)]
emulator: Fix condition check in btdev_create()

This fixes a case where logical '||' was used with constant operand
and the condition check always resulted in true.

Was: if (type == BTDEV_TYPE_BREDRLE || type == BTDEV_TYPE_LE
                                        || BTDEV_TYPE_BREDRLE50)
Fixed: if (type == BTDEV_TYPE_BREDRLE || type == BTDEV_TYPE_LE
                                        || type == BTDEV_TYPE_BREDRLE50)

Change-Id: If8730ed0e30a0b9508a7e9591e3f63cc3deecff9
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agogatt: Fix failure of repeated AcquireNotify calls
Rob Spanton [Tue, 9 Jul 2019 16:57:22 +0000 (17:57 +0100)]
gatt: Fix failure of repeated AcquireNotify calls

This patch fixes a problem that can be encountered if a DBUS client
performs the following steps:

 1) Calls AcquireNotify on a characteristic
 2) Closes the fd produced by AcquireNotify
 3) Immediately calls AcquireNotify again on the same characteristic
 4) Disconnects DBUS client (does not have to be immediately)
 5) Reconnects DBUS client and call AcquireNotify

If these steps are followed, then the third call to AcquireNotify
will often be responded to with an error message stating "Notify
acquired".  Furthermore, the second call to AcquireNotify will not be
provided with an fd.

It turns out that the following was happening:  Closing the fd causes
bluez to disable notifications on that characteristic by writing to
the CCC.  If the second call to AcquireNotify is made before that CCC
write has completed, then a new write to the CCC to re-enable
notifications is enqueued.  Once that first write has completed, the
second write is then taken from the queue and started in
`disable_ccc_callback()`.  Unfortunately `disable_ccc_callback()` was
not actually using the data from the queue, but was instead just
re-using the data that it had been passed (`notify_data` instead of
`next_data`).

This meant that the write to the CCC to enable notifications would
happen, but the callback that needed to be made to the code that was
waiting for the enqueued operation to complete would never happen.  In
this AcquireNotify case, the register_notify_io_cb() function would
not be called, resulting in no socket creation and no response to the
second AcquireNotify call.  Instead it would leave some state
hanging around on bluez's representation of the characteristic, and so
subsequent calls to AcquireNotify by any DBUS client would fail with
the aforementioned error.

The fix is simple here -- make `disable_ccc_callback()` pass the
correct data through.

Change-Id: Ia49678498d713b2285c06ed01b72a6c0e1a6fe35
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/hfp: Fix using uninitialized value
Luiz Augusto von Dentz [Tue, 9 Jul 2019 08:11:57 +0000 (11:11 +0300)]
shared/hfp: Fix using uninitialized value

This fixes the following trace when running unit tests:
  at 0x409597: is_response (hfp.c:1009)
  by 0x409597: hf_call_prefix_handler (hfp.c:1103)
  by 0x409955: hf_process_input (hfp.c:1176)
  by 0x409955: hf_can_read_data (hfp.c:1240)
  by 0x40C0E8: watch_callback (io-glib.c:170)
  by 0x48C3EDC: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.6000.3)
  by 0x48C426F: ??? (in /usr/lib64/libglib-2.0.so.0.6000.3)
  by 0x48C45A2: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.6000.3)
  by 0x40C94C: mainloop_run (mainloop-glib.c:79)
  by 0x40CEF9: mainloop_run_with_signal (mainloop-notify.c:201)
  by 0x408A43: tester_run (tester.c:870)
  by 0x404E04: main (test-hfp.c:865)

Change-Id: Ie720545383bf5ec748b20afd6b87517fa22bdef8
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agogatt: Require medium security for ATT socket over BR/EDR
Luiz Augusto von Dentz [Wed, 3 Jul 2019 15:39:20 +0000 (18:39 +0300)]
gatt: Require medium security for ATT socket over BR/EDR

Encryption is required according to the spec:

  BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 3, Part G page 2397:

  5.1.2 BR/EDR channel requirements

  The channel shall be encrypted. The Key_Type shall be either an
  Unauthenticated Combination Key or an Authenticated Combination Key.

Change-Id: I1cf0647421e2aeb7db0136758a33d626192c56c7
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoatt: Return error in case Exchange MTU is used over BR/EDR link
Luiz Augusto von Dentz [Wed, 3 Jul 2019 15:32:37 +0000 (18:32 +0300)]
att: Return error in case Exchange MTU is used over BR/EDR link

In case of BR/EDR the L2CAP MTU negotion is used instead:

  BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 3, Part G page 2370
  4.3.1 Exchange MTU

  This sub-procedure shall not be used on a BR/EDR physical link since
  the MTU size is negotiated using L2CAP channel configuration
  procedures.

Change-Id: Iadcd6d11ad30f892661da0e9e58993fa2e4e987b
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotools: Fix build after y2038 changes in glibc
Bastien Nocera [Fri, 7 Jun 2019 07:51:33 +0000 (09:51 +0200)]
tools: Fix build after y2038 changes in glibc

The 32-bit SIOCGSTAMP has been deprecated. Use the deprecated name
to fix the build.

Change-Id: I8fb8adcbb9ea4731ed83dcd3dbbf18ed7cc724fa
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoavctp: Fix not accounting output MTU properly
Luiz Augusto von Dentz [Wed, 3 Jul 2019 12:25:00 +0000 (15:25 +0300)]
avctp: Fix not accounting output MTU properly

The code shall use BT_IO_OPT_OMTU to read the output MTU.

Change-Id: Ie97e172469b26177a612c8f2d3231c196e877a83
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agosixaxis: Throw an error when cable setup fails
Bastien Nocera [Fri, 7 Jun 2019 06:54:11 +0000 (08:54 +0200)]
sixaxis: Throw an error when cable setup fails

If btd_request_authorization_cable_configured() fails, throw an error
and free resources.

Change-Id: Ibd9a8ca9e920bac1f23f3808f8b99ab3f2bd99d2
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agosixaxis: Fix another problem with already setup devices
Bastien Nocera [Fri, 7 Jun 2019 06:54:10 +0000 (08:54 +0200)]
sixaxis: Fix another problem with already setup devices

If the device went through any kind of pairing once, it might have been
set as trusted. Make sure to set the device as untrusted before starting
the cable pairing authorization so that we don't exit early from
process_auth_queue() (which considers trusted devices to be paired).

Change-Id: I14812c9ff7738767d84c867553b4572870faea84
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomain.conf: Make ReverseServiceDiscovery work with LE
Luiz Augusto von Dentz [Wed, 29 May 2019 11:55:37 +0000 (14:55 +0300)]
main.conf: Make ReverseServiceDiscovery work with LE

This makes ReverseServiceDiscovery work properly with LE connection by
disabling the GATT client functionality which makes one able to setup a
system to operate in peripheral role only mode.

Change-Id: Ib011e22297ef2ee913b6dfaf817c54f75cc6a390
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode LE Periodic Advertising Sync Lost Event
Szymon Janc [Wed, 22 May 2019 09:24:03 +0000 (11:24 +0200)]
monitor: Decode LE Periodic Advertising Sync Lost Event

> HCI Event: LE Meta Event (0x3e) plen 3
      LE Periodic Advertising Sync Lost (0x10)
        Sync handle: 0

Change-Id: I6297353c871636e5a065bbd3dc038a27cf0aeefe
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode LE Periodic Advertising Report Event
Szymon Janc [Wed, 22 May 2019 09:24:02 +0000 (11:24 +0200)]
monitor: Decode LE Periodic Advertising Report Event

> HCI Event: LE Meta Event (0x3e) plen 18
      LE Periodic Advertising Report (0x0f)
        Sync handle: 0
        TX power: -4 dbm (0xfc)
        RSSI: -55 dBm (0xc9)
        Unused: (0xff)
        Data status: Complete
        Data length: 0x0a
        b0 b1 b2 b3 b4 b5 b6 b7 b8 b9

Change-Id: I54d618131ca1addf5547beedd67b561170cd38a7
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode LE Periodic Advertising Sync Established Event
Szymon Janc [Wed, 22 May 2019 09:24:01 +0000 (11:24 +0200)]
monitor: Decode LE Periodic Advertising Sync Established Event

> HCI Event: LE Meta Event (0x3e) plen 16
      LE Periodic Advertising Sync Established (0x0e)
        Status: Success (0x00)
        Sync handle: 0
        Advertising SID: 0x06
        Advertiser address type: Random (0x01)
        Advertiser address: FF:00:00:00:00:AA (Static)
        Advertiser PHY: LE 1M (0x01)
        Periodic advertising invteral: 50.00 msec (0x0028)
        Advertiser clock accuracy: 0x04

Change-Id: I1932b8818abaa7acb029362beb7bc2c4d46c4d23
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-db: Fix crash when generating hash
Luiz Augusto von Dentz [Tue, 14 May 2019 07:39:27 +0000 (10:39 +0300)]
shared/gatt-db: Fix crash when generating hash

The following crash can be observed when handles are not contiguous:

Invalid write of size 8
   at 0x452697: gen_hash_m (gatt-db.c:314)
   by 0x453FE8: gatt_db_service_foreach (gatt-db.c:1395)
   by 0x45408C: service_gen_hash_m (gatt-db.c:322)
   by 0x4548F1: foreach_service_in_range (gatt-db.c:1284)
   by 0x4548F1: foreach_in_range (gatt-db.c:1307)
   by 0x457470: queue_foreach (queue.c:220)
   by 0x453B75: gatt_db_foreach_service_in_range (gatt-db.c:1349)
   by 0x453BAC: gatt_db_foreach_service (gatt-db.c:1254)
   by 0x453C46: db_hash_update (gatt-db.c:340)
   by 0x4567B4: timeout_callback (timeout-glib.c:34)

Change-Id: Idc0456441e2b94935e7475e25b62428277180797
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoandroid/handsfree: Fix unaligned struct access
Bastien Nocera [Thu, 9 May 2019 12:37:46 +0000 (14:37 +0200)]
android/handsfree: Fix unaligned struct access

android/handsfree.c: In function ‘bt_sco_get_fd’:
android/handsfree.c:2913:47: error: taking address of packed member of ‘struct sco_rsp_get_fd’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 2913 |  if (!dev || !bt_sco_get_fd_and_mtu(sco, &fd, &rsp.mtu))
      |                                               ^~~~~~~~

Change-Id: I9fa77341db9858d2a21b589a0f4661a0990de19a
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoandroid/hal-bluetooth: Fix unaligned struct access
Bastien Nocera [Thu, 9 May 2019 12:37:45 +0000 (14:37 +0200)]
android/hal-bluetooth: Fix unaligned struct access

android/hal-bluetooth.c: In function ‘set_adapter_property’:
android/hal-bluetooth.c:659:46: error: taking address of packed member of ‘struct hal_cmd_set_adapter_prop’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  659 |  adapter_prop_from_hal(property, &cmd->type, &cmd->len, cmd->val);
      |                                              ^~~~~~~~~

Change-Id: Ic6714f8657c5f7f6f7a72a7aaaff26fcb63d93f5
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoandroid/avrcp-lib: Fix unaligned struct access
Bastien Nocera [Thu, 9 May 2019 12:37:44 +0000 (14:37 +0200)]
android/avrcp-lib: Fix unaligned struct access

android/avrcp-lib.c: In function ‘get_element_attributes’:
android/avrcp-lib.c:967:24: error: taking address of packed member of ‘struct get_element_attributes_req’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  967 |  if (!parse_attributes(* (&req->attrs), params_len - sizeof(*req),
      |                        ^~~~~~~~~~~~~~~

Change-Id: Idb5f519bf931b0f101cdc7cad71614302aaaf0bf
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotools/csr_usb: Fix compilation failure
Bastien Nocera [Thu, 9 May 2019 12:37:42 +0000 (14:37 +0200)]
tools/csr_usb: Fix compilation failure

GCC's "format-nonliteral" security check is enabled as an error in
recent versions of Fedora. Given the limited formats, pass a boolean
to switch between the 2 different formats.

tools/csr_usb.c: In function 'read_value':
tools/csr_usb.c:82:2: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
  n = fscanf(file, format, &value);
  ^

Change-Id: Ia0c8d0c4bb77d472afa39a148aff41f220818571
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Fix crash when setting advertising.discoverable on
Luiz Augusto von Dentz [Fri, 10 May 2019 11:58:09 +0000 (14:58 +0300)]
client: Fix crash when setting advertising.discoverable on

DBUS_TYPE_BOOLEAN expect a pointer to dbus_bool_t not bool.

Change-Id: I7eccad12814365dc88e26ff85ae0e79ee421ded9
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fix memory when loading of LastUsed fails
Luiz Augusto von Dentz [Fri, 10 May 2019 08:22:11 +0000 (11:22 +0300)]
a2dp: Fix memory when loading of LastUsed fails

This fixes the following trace:

 3 bytes in 1 blocks are definitely lost in loss record 2 of 246
    at 0x483880B: malloc (vg_replace_malloc.c:309)
    by 0x491BDC5: g_malloc (in /usr/lib64/libglib-2.0.so.0.5800.3)
    by 0x490CF2B: ??? (in /usr/lib64/libglib-2.0.so.0.5800.3)
    by 0x490E7CF: g_key_file_get_string (in /usr/lib64/libglib-2.0.so.0.5800.3)
    by 0x41E85B: load_remote_sep (a2dp.c:1987)
    by 0x41E85B: load_remote_seps (a2dp.c:2030)
    by 0x41EC86: avdtp_state_cb (a2dp.c:2053)
    by 0x421F77: avdtp_set_state (avdtp.c:700)
    by 0x42818B: avdtp_connect_cb (avdtp.c:2313)
    by 0x42847C: avdtp_new (avdtp.c:2389)
    by 0x41B4BB: connect_cb (a2dp.c:2145)
    by 0x46D993: accept_cb (btio.c:203)

Change-Id: I44e583c82bb9cb9b8674b5ee5043d995e3c21621
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotools: Walk rp->opcodes directly instead of interim variable
Marcel Holtmann [Tue, 7 May 2019 14:50:20 +0000 (16:50 +0200)]
tools: Walk rp->opcodes directly instead of interim variable

Change-Id: I6d56d349f9e055f8d2bac6080d85faf8900bd931
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoperipheral: Walk rp->opcodes directly instead of interim variable
Marcel Holtmann [Tue, 7 May 2019 14:49:03 +0000 (16:49 +0200)]
peripheral: Walk rp->opcodes directly instead of interim variable

Change-Id: I5844c9f1202a5a3b8de674e59b1580e48f2c83c7
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoadapter: Walk rp->opcodes directly instead of interim variable
Marcel Holtmann [Tue, 7 May 2019 14:47:13 +0000 (16:47 +0200)]
adapter: Walk rp->opcodes directly instead of interim variable

Change-Id: Idc25dd217e4d01d870d899a57c5caec275c850df
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared: Walk rp->opcodes directly instead of interim variable
Marcel Holtmann [Tue, 7 May 2019 14:46:07 +0000 (16:46 +0200)]
shared: Walk rp->opcodes directly instead of interim variable

Change-Id: I224aafcc8e219ff0f526d96f095e6bdc07cf3fcb
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agobuild: Switch to -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32
Marcel Holtmann [Tue, 7 May 2019 14:39:51 +0000 (16:39 +0200)]
build: Switch to -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32

Change-Id: I94ec4a54307a190cd101c2b77ff61e2566600e23
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodoc/settings-storage: Update LastUsed documentation
Luiz Augusto von Dentz [Tue, 7 May 2019 08:28:22 +0000 (11:28 +0300)]
doc/settings-storage: Update LastUsed documentation

This updates LastUsed description to reflect the lastest changes.

Change-Id: Id5bb0e70c0ff04f2d82c6a911ac153cfe35b61bd
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Reword LastUsed
Luiz Augusto von Dentz [Mon, 6 May 2019 12:39:36 +0000 (15:39 +0300)]
a2dp: Reword LastUsed

In addition to storing the remote endpoint also store the local one as
well so we it can properly be restore.

Change-Id: If1716c9ee146fcfd47f9542b00816bbd8326f8c2
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fix useless statement
Luiz Augusto von Dentz [Fri, 3 May 2019 11:49:22 +0000 (14:49 +0300)]
a2dp: Fix useless statement

Checking for NULL path doesn't really matter since NULL is returned
anyway.

Change-Id: Iba01088d9b95cb4541f4aa37f44ef8d7b6518f81
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fix reconfiguring when there multiple devices connected
Luiz Augusto von Dentz [Fri, 3 May 2019 09:41:15 +0000 (12:41 +0300)]
a2dp: Fix reconfiguring when there multiple devices connected

When there are multiple devices connected streams need to be matched
with the sessions they belong.

Change-Id: I47df96c503cffca7e5250e518d01177527f175ba
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Update last used on open indication
Luiz Augusto von Dentz [Fri, 3 May 2019 08:24:57 +0000 (11:24 +0300)]
a2dp: Update last used on open indication

This updates the last used endpoint also when receiving an open
request from the remote end.

Change-Id: Ie586bda139c2d24c1f5bf18d16a30e5ba10db261
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Try aborting when switching endpoints
Luiz Augusto von Dentz [Fri, 3 May 2019 08:22:40 +0000 (11:22 +0300)]
a2dp: Try aborting when switching endpoints

If ongoing stream cannot be closed try aborting since the setup may
still be ongoing.

Change-Id: Ic1eba46f88e961dd061e2a169512cc5852756995
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fix crash when endpoint respond with an error
Luiz Augusto von Dentz [Fri, 3 May 2019 07:51:34 +0000 (10:51 +0300)]
a2dp: Fix crash when endpoint respond with an error

If endpoint respond with an error the callback will be called with size
set to -1 not 0.

Change-Id: I70304846610fce7e47fb01a630a185864f6a1ac5
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoadvertising: Timeout of 0 should not fire a callback
Troels Dalsgaard Hoffmeyer [Tue, 30 Apr 2019 11:51:47 +0000 (13:51 +0200)]
advertising: Timeout of 0 should not fire a callback

Setting a timeout of 0 on an advertisement should let the
advertisement run forever. The client was released
immediately after, although the advertisement was still in the air.

Change-Id: I4916bd36d3a12d5d35ab20c9d356e49e17af94fa
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fixed warn_unused_result warning
Michał Lowas-Rzechonek [Tue, 30 Apr 2019 10:30:00 +0000 (12:30 +0200)]
a2dp: Fixed warn_unused_result warning

This used to break builds when using maintainer mode via
./bootstrap-configure:

profiles/audio/a2dp.c:1775:2: error: ignoring return value of
    ‘asprintf’, declared with attribute warn_unused_result
    [-Werror=unused-result]
  asprintf(&sep->path, "%s/sep%d",
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Change-Id: Ice4d01f47db1dcecadf3f0b57361855baad941fb
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodoc/settings-storage: Document LastUsed Endpoints entry
Luiz Augusto von Dentz [Wed, 24 Apr 2019 08:37:58 +0000 (11:37 +0300)]
doc/settings-storage: Document LastUsed Endpoints entry

Document the use of LastUsed entry inside Endpoints group.

Change-Id: I8f6dbc064b34a81914d13e6c820902c32da93368
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fix not calling SelectConfiguration on other available endpoints
Luiz Augusto von Dentz [Mon, 29 Apr 2019 10:30:34 +0000 (13:30 +0300)]
a2dp: Fix not calling SelectConfiguration on other available endpoints

Endpoint may not be able to select a valid configuration but there could
be other endpoints available that could be used, so instead of just
using the first match this collects all the matching endpoints and put
them into a queue (ordered by priority) then proceed to next endpoint
only failing if none of the available endpoits can select a valid
configuration.

Change-Id: Iefceb3ee76f89cb66c2be99986ee81a42e8c9549
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Store last used endpoint
Luiz Augusto von Dentz [Tue, 23 Apr 2019 15:46:36 +0000 (18:46 +0300)]
a2dp: Store last used endpoint

This stores the last used endpoint whenever it is considered open and
then prefer to use it when attempting to reconnect.

Change-Id: Ic1c3b0876a1f73a882e6c301fdbd7d59c65045fa
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-db: Simplify attribute lookup
Luiz Augusto von Dentz [Wed, 10 Apr 2019 10:14:47 +0000 (13:14 +0300)]
shared/gatt-db: Simplify attribute lookup

This consolidates attribute lookup into gatt_db_foreach_in_range and
instead of using custom code for each operation.

Change-Id: Ifb12affe6d7f3f7591d9cffa454ee2abf63fe5fa
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoa2dp: Fix UUID of remote Sinks
Luiz Augusto von Dentz [Mon, 8 Apr 2019 09:41:39 +0000 (12:41 +0300)]
a2dp: Fix UUID of remote Sinks

Sinks were being reported as Sources.

Change-Id: I79a0f4a95376b2d7560a55bcdb0714d4edd64c7d
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-db: Skip ahead if handle range is not within service
Luiz Augusto von Dentz [Wed, 3 Apr 2019 10:57:13 +0000 (13:57 +0300)]
shared/gatt-db: Skip ahead if handle range is not within service

This checks if a range is within service handles skipping if it is not,
it also convert the direct search to use
gatt_db_foreach_service_in_range instead so all operation that do
lookups in a range can benefit from such optimization.

Change-Id: Iaabce05612bc8744159e1f5115eb27d9bbbec7d4
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agobuild: Check if explicit_bzero is missing
Brian Gix [Mon, 1 Apr 2019 18:45:18 +0000 (11:45 -0700)]
build: Check if explicit_bzero is missing

This check gets around the redefinition of explicit_bzero in ELL

In file included from ell/random.c:34:0:
ell/missing.h:59:20: error: static declaration of ‘explicit_bzero’ follows non-static declaration
 static inline void explicit_bzero(void *s, size_t n)
                    ^~~~~~~~~~~~~~
In file included from ./ell/util.h:26:0,
                 from ell/private.h:26,
                 from ell/random.c:33:
/usr/include/string.h:435:13: note: previous declaration of ‘explicit_bzero’ was here
 extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1));
             ^~~~~~~~~~~~~~

Change-Id: I9830f40242d42ffe2128487af0b731bc62ffaaf9
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoemulator: Fix handling of Set Event Mask Page 2 Command
Szymon Janc [Wed, 27 Mar 2019 10:00:31 +0000 (11:00 +0100)]
emulator: Fix handling of Set Event Mask Page 2 Command

This command is also valid for BR/EDR only (was introduced in 3.0)
and for LE only controllers (Authenticated Payload Timeout Expired
Event).

Change-Id: Ice65b4a355cfe042a89f455106d244a8012c5961
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoautopair: Add pin codes to try for gaming input devices
Bastien Nocera [Mon, 27 Nov 2017 15:26:51 +0000 (16:26 +0100)]
autopair: Add pin codes to try for gaming input devices

As well as remote controls.

Change-Id: Ifc86c9d6d71e770899a7be9141f4d1926e8b35a5
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoautopair: Add more common PIN codes for audio devices
Bastien Nocera [Mon, 27 Nov 2017 15:26:50 +0000 (16:26 +0100)]
autopair: Add more common PIN codes for audio devices

PIN codes "1111", and "1234" are fairly common PIN codes used for audio
devices such as speakers and headsets. This replaces similar quirks
already present in gnome-bluetooth's PIN database.

Change-Id: I6ca058cd15a3e7b4d58720dbb6e4011f78824653
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoadvertising: Fix typo
Luiz Augusto von Dentz [Thu, 21 Mar 2019 12:05:48 +0000 (14:05 +0200)]
advertising: Fix typo

Fix value 'Codec' instead of 'Coded' phy.

Change-Id: I3e36b5e8dfb79222e2e8effb9df140d2fd45392e
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-db: Remove update_attribute
Luiz Augusto von Dentz [Mon, 18 Mar 2019 16:16:06 +0000 (18:16 +0200)]
shared/gatt-db: Remove update_attribute

It is not longer needed to access the last attribute handle to figure
out its attribute since the handle is either passed directly or the
db->last_handle is used.

Change-Id: I94706812f24868dc0da81a27cc2b1feb36f1f9f1
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-client: Fix failing to discover included attributes
Luiz Augusto von Dentz [Mon, 18 Mar 2019 16:14:00 +0000 (18:14 +0200)]
shared/gatt-client: Fix failing to discover included attributes

When there exists a included service a descriptor may already exists in
the handle location so instead of failing check if the UUID matches and
then skip to the next descriptor.

Change-Id: I6cf99f2b4316ea2f82ba393c95db72b97ca89303
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/shell: Highlight user prompt input
Luiz Augusto von Dentz [Thu, 14 Mar 2019 14:47:32 +0000 (16:47 +0200)]
shared/shell: Highlight user prompt input

This makes them more evident compared to regular output which is now
possible since coloring prompts should not produce artifacs anymore.

Change-Id: I9010085ac9c15d78730763ff60cc741de9dcad4d
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-client: Add debug for error with included services
Luiz Augusto von Dentz [Mon, 18 Mar 2019 16:12:23 +0000 (18:12 +0200)]
shared/gatt-client: Add debug for error with included services

This logs errors with included service so it is easier to noticed when
they are malformed.

Change-Id: Ica823cf6d61ffdfbdd49b502fc37ccd951dc956f
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/shell: Fix colors not using proper escape sequence
Luiz Augusto von Dentz [Thu, 14 Mar 2019 14:43:11 +0000 (16:43 +0200)]
shared/shell: Fix colors not using proper escape sequence

According to readline documentation \001 and \002 has to be used to
delimit characters which takes no space:

  'Applications may indicate that the prompt contains characters that
  take up no physical screen space when displayed by bracketing a
  sequence of such characters with the special markers
  `RL_PROMPT_START_IGNORE' and `RL_PROMPT_END_IGNORE'.'

Change-Id: I7b45341e67931cb201d5e98f6efe75613779bdfc
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Fix LE Set Extended Advertising Parameters TX power decoding
Szymon Janc [Tue, 26 Feb 2019 12:55:07 +0000 (13:55 +0100)]
monitor: Fix LE Set Extended Advertising Parameters TX power decoding

TX power of 127 has special meaning for this command.

Change-Id: I4b8a5c742d84008f0306f700d93d18bad4b4a989
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoadapter: Fix length calculation of filter UUIDs on big endian
Luiz Augusto von Dentz [Wed, 6 Mar 2019 12:39:41 +0000 (14:39 +0200)]
adapter: Fix length calculation of filter UUIDs on big endian

The management interface expect all values to be in little endian
thus the length of uuids needs to be converted on big endian.

Change-Id: I0f9759f49fb8a91a9e7f2cdf8d7b50228ded85c9
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add decoding for HCI LE Transmitter Test command [v3]
Luiz Augusto von Dentz [Thu, 28 Feb 2019 08:47:49 +0000 (10:47 +0200)]
monitor: Add decoding for HCI LE Transmitter Test command [v3]

This decodes LE Transmitter Test command [v3] introduced in 5.1.

Change-Id: Icb918f6cfa05322437a99627b04746c73878fa69
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add decoding for HCI LE Receiver Test command [v3]
Luiz Augusto von Dentz [Wed, 27 Feb 2019 14:35:44 +0000 (16:35 +0200)]
monitor: Add decoding for HCI LE Receiver Test command [v3]

This decodes LE Receiver Test command [v3] introduced in 5.1.

Change-Id: I11ba98e6d7b529790cf8db876fb3cad28eaf793c
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode LL_CLOCK_ACCURACY_*
Luiz Augusto von Dentz [Wed, 27 Feb 2019 11:19:11 +0000 (13:19 +0200)]
monitor: Decode LL_CLOCK_ACCURACY_*

This introduces the command passing for LL_CLOCK_ACCURACY_* PDUs added
in 5.1.

Change-Id: I1ea4b2c13c60ffc842ae50fbc5c55830a0603e35
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode LL_PERIODIC_SYNC_IND
Luiz Augusto von Dentz [Wed, 27 Feb 2019 11:12:27 +0000 (13:12 +0200)]
monitor: Decode LL_PERIODIC_SYNC_IND

This introduces the command passing for LL_PERIODIC_SYNC_IND PDU added
in 5.1.

Change-Id: I6bbc4ef6107c3bf0045ef3427458bacfec95ea92
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Decode LL_CTE_*
Luiz Augusto von Dentz [Tue, 26 Feb 2019 17:01:14 +0000 (19:01 +0200)]
monitor: Decode LL_CTE_*

This introduces the command passing for LL_CTE_* PDUs added in 5.1.

Change-Id: Ife9c82a0497872b29672ecbb4b6c2d5622a32eee
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add decoding support for LL_MIN_USED_CHANNELS
Luiz Augusto von Dentz [Tue, 26 Feb 2019 13:30:46 +0000 (15:30 +0200)]
monitor: Add decoding support for LL_MIN_USED_CHANNELS

This prints makes the fields to be printed instead of just decoding
the PDU name.

Change-Id: Ida4330e9418ed7be5a6d4118d1e9097d4901aea8
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add decoding support for LL_PHY_UPDATE_IND
Luiz Augusto von Dentz [Tue, 26 Feb 2019 13:17:05 +0000 (15:17 +0200)]
monitor: Add decoding support for LL_PHY_UPDATE_IND

This prints makes the fields to be printed instead of just decoding
the PDU name.

Change-Id: Ie073880a8ed77c59d84c2e585486b2222a16926a
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add decoding support for LL_PHY_*
Luiz Augusto von Dentz [Tue, 26 Feb 2019 12:51:25 +0000 (14:51 +0200)]
monitor: Add decoding support for LL_PHY_*

This prints makes the fields to be printed instead of just decoding
the PDU name.

Change-Id: I0b18a0e73a7e818276151369424757dfbf59223c
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Add decoding support for LL_LENGTH_*
Luiz Augusto von Dentz [Tue, 26 Feb 2019 11:38:30 +0000 (13:38 +0200)]
monitor: Add decoding support for LL_LENGTH_*

This prints makes the fields to be printed instead of just decoding
the PDU name.

Change-Id: I827ee274dc83c747df247a6cc9b79a5bf7f17fdc
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agotest/example-advertisement: add shutdown code
Hunt, Preston [Mon, 24 Sep 2018 15:46:41 +0000 (15:46 +0000)]
test/example-advertisement: add shutdown code

The previous sample code did not release all resources when shutting
down. This is fine when it's a standalone program since Python will free
all resources automatically when the process terminates. However, in a
long-running process, this will eventually cause problems.

This changeset shows how to properly release all resources, if an optional
command line "--timeout" argument is used. The default is no timeout to
maintain behavior of the previous implementation (advertisements will run
forever).

Change-Id: Ica1bbbf1f9a78625e2a6d5f9ac5570609c5376e5
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Fix build with older version on libdbus
Luiz Augusto von Dentz [Tue, 26 Feb 2019 17:24:40 +0000 (19:24 +0200)]
client: Fix build with older version on libdbus

This fixes the following error when building with older version of
D-Bus:

client/gatt.c:2973: undefined reference to `dbus_message_iter_get_element_count'

Change-Id: Ie285fced42f67448a6a075f2e65a7726be10956c
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshell: Allow multiple prompt inputs
Luiz Augusto von Dentz [Fri, 22 Feb 2019 11:32:25 +0000 (13:32 +0200)]
shell: Allow multiple prompt inputs

This allow queueing input prompts so that the application don't have to
queue themselves.

Change-Id: I5316426ce3dd2e24ff24c30276ca0f538c6d48ee
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Print AdvertisingManager properties on command 'show'
Luiz Augusto von Dentz [Thu, 21 Feb 2019 12:05:57 +0000 (14:05 +0200)]
client: Print AdvertisingManager properties on command 'show'

This outputs the AdvertisingManager properties command 'show':

bluetoothctl> show
...
Advertising Features:
ActiveInstances: 0x00
SupportedInstances: 0x05
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name

Change-Id: I351131b1041ba749a1ee8afdb209dd03891c11a8
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Add advertise.secondary command
Luiz Augusto von Dentz [Fri, 15 Feb 2019 14:19:59 +0000 (16:19 +0200)]
client: Add advertise.secondary command

This adds advertose.secondary command which can be used to set a
secondary channel to advertise.

Change-Id: I3bfeb3620583efbe77150617b659ef02b5375dd2
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoadvertising: Add implementation of SecondaryChannel
Luiz Augusto von Dentz [Fri, 15 Feb 2019 12:23:22 +0000 (14:23 +0200)]
advertising: Add implementation of SecondaryChannel

This add the parsing for SecondaryChannel which indicates what secondary
PHY shall be used.

Change-Id: I419f0bfa4d53c359c767e0493170d664f7493ef7
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoadvertising: Add implementation of SupportedSecondaryChannels
Luiz Augusto von Dentz [Fri, 15 Feb 2019 11:53:08 +0000 (13:53 +0200)]
advertising: Add implementation of SupportedSecondaryChannels

This implements SupportedSecondaryChannels property which expose what
the supported secondary channels.

Change-Id: I95c8ba8ecb2d8379d334bbe5532fc53b90ebdeae
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodoc/advertising-api: Add support for setting Secondary Channel
Luiz Augusto von Dentz [Fri, 15 Feb 2019 09:15:28 +0000 (11:15 +0200)]
doc/advertising-api: Add support for setting Secondary Channel

This enables reading and setting the Secondary Channel/PHY supported
by the controller.

Change-Id: Id935400b376be31cefe18a9af93181b68d2e7ba3
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agomonitor: Fix LE Read Transmit Power Command deconding
Szymon Janc [Fri, 15 Feb 2019 12:58:28 +0000 (13:58 +0100)]
monitor: Fix LE Read Transmit Power Command deconding

Min and max TX power are signed intergers.

Change-Id: I09cedfce59a4519cce689ee4d69dd489fea01f74
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Fix uninitialized error
Luiz Augusto von Dentz [Wed, 13 Feb 2019 15:07:25 +0000 (17:07 +0200)]
client: Fix uninitialized error

trusted should be initialized with false since the property may not be
available.

Change-Id: Id1529b0821d3b7a466bab8c52c150dac0d2a3714
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Improve logging of GATT operations
Luiz Augusto von Dentz [Wed, 13 Feb 2019 15:05:21 +0000 (17:05 +0200)]
client: Improve logging of GATT operations

This prints the UUID along with attribute path and also print the
hexdump when payload is available.

Change-Id: If48e517894a93572f0e7a19a16fe58c85a3fbfb1
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Forward notifications from cloned attributes
Luiz Augusto von Dentz [Wed, 13 Feb 2019 14:25:05 +0000 (16:25 +0200)]
client: Forward notifications from cloned attributes

Notifications come in a form of 'Value' property changes thus this
copies the values to the local attribute so they are in sync.

Change-Id: I76b8d58a4518c8059eb84cd3d0cdfebc0fd7daa3
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Remove cloned services if the proxy is removed
Luiz Augusto von Dentz [Tue, 12 Feb 2019 11:38:46 +0000 (13:38 +0200)]
client: Remove cloned services if the proxy is removed

This unregister the cloned services if the proxy is removed since they
would no longer be accessible.

Change-Id: I657787c1f534cc2493e77a61f3f062dca20494ec
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Proxy calls to StartNotify/StopNotify
Luiz Augusto von Dentz [Tue, 12 Feb 2019 11:23:06 +0000 (13:23 +0200)]
client: Proxy calls to StartNotify/StopNotify

This uses the proxies created by clone command to forward the
subscriptions to the cloned services.

Change-Id: I04ba4be9b9e6208afe2ea1cbcff7642e2fa3c053
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Proxy calls to ReadValue and WriteValue
Luiz Augusto von Dentz [Tue, 12 Feb 2019 10:00:08 +0000 (12:00 +0200)]
client: Proxy calls to ReadValue and WriteValue

This uses the proxies created by clone command to forward the requests
to the cloned services.

Change-Id: Icd16e294a5811f8ea7ba71622d3ee2079708213b
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoclient: Add gatt.clone command
Luiz Augusto von Dentz [Mon, 11 Feb 2019 16:36:27 +0000 (18:36 +0200)]
client: Add gatt.clone command

This adds clone command to gatt submenu which can be use to clone
services as follow:

Clone all services from the connected device:
> gatt.clone

Clone a given service
> gatt.select-attribute <attribute/uuid>
> gatt.clone

In either case there is a prompt to confirm since this may add a lot of
service the user must confim before proceding.

Then finally:

> gatt.register-application

Change-Id: Ia3298b1f1a52c04b0dad34a7b794c9f177c8978d
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agogatt: Fix not allowing 'extended-properties' as flags
Luiz Augusto von Dentz [Mon, 11 Feb 2019 16:33:58 +0000 (18:33 +0200)]
gatt: Fix not allowing 'extended-properties' as flags

Allows 'extended-propeties' as flags.

Change-Id: I6b8c9952dd97fd0392acefe7ba687b3f07f0abf7
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-db: Fix crash if next_handle is 0
Luiz Augusto von Dentz [Tue, 12 Feb 2019 14:38:58 +0000 (16:38 +0200)]
shared/gatt-db: Fix crash if next_handle is 0

If the database is reseted all the services shall be ignored and no
hash shall be generated.

Change-Id: I4e396dd0c5e0e9823f307115cbdebd21bb5b88ad
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agodevice: Store Database Hash on storage
Luiz Augusto von Dentz [Mon, 12 Mar 2018 13:30:37 +0000 (15:30 +0200)]
device: Store Database Hash on storage

This stores the hash on the storage so it can be reloaded when the
daemon/system restarts.

Change-Id: Ie8d397ab41ceb60b143998a0a516b392088d5e62
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-client: Write Client Features
Luiz Augusto von Dentz [Tue, 6 Mar 2018 12:11:14 +0000 (14:11 +0200)]
shared/gatt-client: Write Client Features

This writes the supported client features setting Robust Caching bit.

Change-Id: I13dec10d7b2888fb4d8d0774d12a06ee1f026522
Signed-off-by: himanshu <h.himanshu@samsung.com>
4 years agoshared/gatt-client: Read database hash if available
Luiz Augusto von Dentz [Tue, 6 Mar 2018 08:29:25 +0000 (10:29 +0200)]
shared/gatt-client: Read database hash if available

This reads the database hash if available and compares to the existing
value, if it matches consider the discovery is completed.

Change-Id: I5dabc14550049afe4bc1e4c6ab790cd2d25e57e2
Signed-off-by: himanshu <h.himanshu@samsung.com>