summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* client/advertising: Add support for advertise.rsi commandLuiz Augusto von Dentz2023-04-053-2/+46
| | | | | | | | | | | | | | | | | | | | | This adds support for advertise.rsi command which can be used to request the generation of RSI and include it as part of advertising data: [bluetooth]# advertise.rsi --help Show/Enable/Disable RSI to be advertised Usage: rsi [on/off] [bluetooth]# advertise.rsi RSI: on [bluetooth]# advertise on ... Advertising object registered Tx Power: off Name: off Appearance: off Discoverable: on RSI: on [bluetooth]#
* advertising: Add support for rsi as IncludesLuiz Augusto von Dentz2023-04-051-1/+46
| | | | | | | | | | | | | | | | | | | This adds support for "rsi" when a SIRK has been set on main.conf, the clients can then enable it via Includes property which will make the daemon to automatically generate an RSI (hash+random) and include it as part of the advertising data: < HCI Command: LE Set Extended Advertising Data (0x08|0x0037) plen 15 Handle: 0x01 Operation: Complete extended advertising data (0x03) Fragment preference: Minimize fragmentation (0x01) Data length: 0x0b Resolvable Set Identifier: E2-4E-AA-1B-2B-61 Hash: 0x1b2b61 Random: 0xe24eaa Flags: 0x06 LE General Discoverable Mode BR/EDR Not Supported
* advertising-api: Add rsi to SupportedIncludesLuiz Augusto von Dentz2023-04-051-0/+1
| | | | | | This adds "rsi" as possible value to SupportedIncludes so when it is available it means client and set it on its Includes property so a proper RSI is generated and included as part of the Advertising Data.
* shared/ad: Fix bt_ad_has_data not matching when only type is passedLuiz Augusto von Dentz2023-04-051-0/+3
| | | | | | bt_ad_has_data attempts to match the data portion even when not set which is useful the user is only interested in actually mataching the type alone.
* main.conf: Fix parsing of CSIS groupLuiz Augusto von Dentz2023-04-051-5/+5
| | | | There was a typo in the group name using CSIP instead of CSIS.
* monitor/att: Add decoding support for BASSIulia Tanasescu2023-04-051-2/+462
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds decoding support for BASS attributes: > ACL Data RX: Handle 0 flags 0x02 dlen 7 ATT: Read Request (0x0a) len 2 Handle: 0x003a Type: Broadcast Receive State (0x2bc8) < ACL Data TX: Handle 0 flags 0x00 dlen 45 ATT: Read Response (0x0b) len 40 Handle: 0x003a Type: Broadcast Receive State (0x2bc8) Value: 0100f2698be807c0013a6501020101000000000403020400 Source_ID: 1 Source_Address_Type: 0 Source_Address: C0:07:E8:8B:69:F2 Source_Adv_SID: 1 Broadcast_ID: 0x01653a PA_Sync_State: Synchronized to PA BIG_Encryption: Broadcast_Code required Num_Subgroups: 1 Subgroup #0: BIS_Sync State: 0x00000000 Metadata #0: len 0x03 type 0x02 Metadata: 0400 > ACL Data RX: Handle 0 flags 0x02 dlen 7 ATT: Read Request (0x0a) len 2 Handle: 0x003d Type: Broadcast Receive State (0x2bc8) < ACL Data TX: Handle 0 flags 0x00 dlen 5 ATT: Read Response (0x0b) len 0 Handle: 0x003d Type: Broadcast Receive State (0x2bc8) Value: Empty characteristic > ACL Data RX: Handle 0 flags 0x02 dlen 8 ATT: Write Request (0x12) len 3 Handle: 0x0040 Type: Broadcast Audio Scan Control Point (0x2bc7) Data: 00 Opcode: Remote Scan Stopped (0x00) < ACL Data TX: Handle 0 flags 0x00 dlen 9 ATT: Error Response (0x01) len 4 Write Request (0x12) Handle: 0x0040 Error: Reserved (0x80) > ACL Data RX: Handle 0 flags 0x02 dlen 8 ATT: Write Request (0x12) len 3 Handle: 0x0040 Type: Broadcast Audio Scan Control Point (0x2bc7) Data: 01 Opcode: Remote Scan Started (0x01) < ACL Data TX: Handle 0 flags 0x00 dlen 9 ATT: Error Response (0x01) len 4 Write Request (0x12) Handle: 0x0040 Error: Reserved (0x80) > ACL Data RX: Handle 0 flags 0x01 dlen 5 ATT: Write Request (0x12) len 27 Handle: 0x0040 Type: Broadcast Audio Scan Control Point (0x2bc7) Data: 0200f2698be807c0013a650100ffff01000000000403020400 Opcode: Add Source (0x02) Source_Address_Type: 0 Source_Address: C0:07:E8:8B:69:F2 Source_Adv_SID: 1 Broadcast_ID: 0x01653a PA_Sync_State: Do not synchronize to PA PA_Interval: 0xffff Num_Subgroups: 1 Subgroup #0: BIS_Sync State: 0x00000000 Metadata #0: len 0x03 type 0x02 Metadata: 0400 < ACL Data TX: Handle 0 flags 0x00 dlen 9 ATT: Error Response (0x01) len 4 Write Request (0x12) Handle: 0x0040 Error: Reserved (0x80) > ACL Data RX: Handle 0 flags 0x02 dlen 22 ATT: Write Request (0x12) len 17 Handle: 0x0040 Type: Broadcast Audio Scan Control Point (0x2bc7) Data: 030102780001000000000403040400 Opcode: Modify Source (0x03) Source_ID: 1 PA_Sync_State: Synchronize to PA - PAST not available PA_Interval: 0x0078 Num_Subgroups: 1 Subgroup #0: BIS_Sync State: 0x00000000 Metadata #0: len 0x03 type 0x04 Metadata: 0400 < ACL Data TX: Handle 0 flags 0x00 dlen 9 ATT: Error Response (0x01) len 4 Write Request (0x12) Handle: 0x0040 Error: Reserved (0x80) > ACL Data RX: Handle 0 flags 0x02 dlen 25 ATT: Write Request (0x12) len 20 Handle: 0x0040 Type: Broadcast Audio Scan Control Point (0x2bc7) Data: 0401b803eac6afbb65a25a41f15305680201 Opcode: Set Broadcast_Code (0x04) Source_ID: 1 Broadcast_Code: b803eac6afbb65a25a41f15305680201 < ACL Data TX: Handle 0 flags 0x00 dlen 5 ATT: Write Response (0x13) len 0 < ACL Data TX: Handle 0 flags 0x00 dlen 33 ATT: Handle Multiple Value Notification (0x23) len 28 Length: 0x0018 Handle: 0x003a Type: Broadcast Receive State (0x2bc8) Data: 0100f2698be807c0013a6501020201000000000403020400 Source_ID: 1 Source_Address_Type: 0 Source_Address: C0:07:E8:8B:69:F2 Source_Adv_SID: 1 Broadcast_ID: 0x01653a PA_Sync_State: Synchronized to PA BIG_Encryption: Decrypting Num_Subgroups: 1 Subgroup #0: BIS_Sync State: 0x00000000 Metadata #0: len 0x03 type 0x02 Metadata: 0400 > ACL Data RX: Handle 0 flags 0x02 dlen 9 ATT: Write Request (0x12) len 4 Handle: 0x0040 Type: Broadcast Audio Scan Control Point (0x2bc7) Data: 0501 Opcode: Remove Source (0x05) Source_ID: 1 < ACL Data TX: Handle 0 flags 0x00 dlen 9 ATT: Error Response (0x01) len 4 Write Request (0x12) Handle: 0x0040 Error: Reserved (0x80)
* set: Fix not attempt to connect devices with RSILuiz Augusto von Dentz2023-04-031-1/+3
| | | | | If a device advertising with RSI is only found later after the set was already create we shall still attempt to connect to it.
* mesh: Tighten IO and fix out-of-bounds array accessInga Stotland2023-04-036-160/+50
| | | | | | | This fixes the out-of-bounds array access in mesh-io-mgmt.c caught by address sanitizer. Similar fixes were applied earlier to generic and unit IOs. With this patch, the common code is factored into a centralized location.
* adapter: Use regular discovery for filters which only have discoverable setHans de Goede2023-03-311-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | discovery_filter_to_mgmt_cp() does not add discovery_filter.discoverable to the created mgmt_cp_start_service_discovery struct. Instead update_discovery_filter() separately checks client->discovery_filter->discoverable for all clients. This means that for discovery-filters which only have the discoverable flag set, to put the adapter in discoverable mode while discovering, the created mgmt_cp_start_service_discovery struct is empty. This empty mgmt_cp_start_service_discovery struct then gets sent to the kernel as part of a MGMT_OP_START_SERVICE_DISCOVERY msg by start_discovery_timeout(). This use of an empty filter with MGMT_OP_START_SERVICE_DISCOVERY causes some bluetooth devices to not get seen with some (most?) Broadcom bluetooth adapters. This problem has been observed with the following Broadcom models: BCM4343A0, BCM43430A1, BCM43341B0 . On these models the following 2 devices were not being discovered when starting a scan with a filter with just discoverable set in the filter (as gnome-bluetooth does): Device 09:02:01:03:0F:87 (public) Name: Bluetooth 3.0 Keyboard Alias: Bluetooth 3.0 Keyboard Class: 0x00000540 Icon: input-keyboard Paired: yes Bonded: yes Trusted: yes Blocked: no Connected: yes WakeAllowed: yes LegacyPairing: yes UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb) UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb) UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) Modalias: bluetooth:v05ACp022Cd011B Device 00:60:D1:00:00:34 (public) Name: Bluetooth Mouse Alias: Bluetooth Mouse Class: 0x00002580 Icon: input-mouse Paired: yes Bonded: yes Trusted: yes Blocked: no Connected: yes WakeAllowed: yes LegacyPairing: no UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb) UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) Modalias: usb:v0103p0204d001E Since setting the discoverable flag on a filter only is a way to automatically put the adapter in discoverable mode itself while it is discovering; and since this does not any device filtering at all; modify merge_discovery_filters() to treat discovery with such filters as regular unfiltered discovery. This results in start_discovery_timeout() starting regular discovery through a MGMT_OP_START_DISCOVERY message and this fixes these 2 example devices not getting discovered by the mentioned Broadcom BT adapter models. Link: https://gitlab.gnome.org/GNOME/gnome-bluetooth/-/merge_requests/163 Reviewed-by: Bastien Nocera <hadess@hadess.net>
* Split bt_iso_qos into dedicated structuresIulia Tanasescu2023-03-318-124/+359
| | | | | Split bt_iso_qos into dedicated unicast and broadcast structures and add additional broadcast parameters.
* avrcp: Fix crash while handling unsupported eventsLuiz Augusto von Dentz2023-03-301-0/+6
| | | | | | | | | | | | | | | | | | | | | The following crash can be observed if the remote peer send and unsupported event: ERROR: AddressSanitizer: heap-use-after-free on address 0x60b000148f11 at pc 0x559644552088 bp 0x7ffe28b3c7b0 sp 0x7ffe28b3c7a0 WRITE of size 1 at 0x60b000148f11 thread T0 #0 0x559644552087 in avrcp_handle_event profiles/audio/avrcp.c:3907 #1 0x559644536c22 in control_response profiles/audio/avctp.c:939 #2 0x5596445379ab in session_cb profiles/audio/avctp.c:1108 #3 0x7fbcb3e51c43 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x55c43) #4 0x7fbcb3ea66c7 (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0xaa6c7) #5 0x7fbcb3e512b2 in g_main_loop_run (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x552b2) #6 0x559644754ab6 in mainloop_run src/shared/mainloop-glib.c:66 #7 0x559644755606 in mainloop_run_with_signal src/shared/mainloop-notify.c:188 #8 0x5596445bb963 in main src/main.c:1289 #9 0x7fbcb3bafd8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #10 0x7fbcb3bafe3f in __libc_start_main_impl ../csu/libc-start.c:392 #11 0x5596444e8224 in _start (/usr/local/libexec/bluetooth/bluetoothd+0xf0224)
* mgmt-tester: Add devcoredump testsManish Mandlik2023-03-301-0/+173
| | | | | | Add mgmt-tester tests for hci devcoredump. These testa trigger the devcoredump with a test data and verifies the generated devcoredump file for the test data and correct devcoredump header fields.
* vhci: Add support to trigger devcoredump and read the dump fileManish Mandlik2023-03-302-1/+62
| | | | | | Add vhci support to trigger the hci devcoredump by writing to force_devcoredump debugfs entry and read the generated devcoredump file.
* device: Fix not setting initiator flag when auto-connectingLuiz Augusto von Dentz2023-03-291-2/+9
| | | | | | If the device is marked as auto-connect the kernel may initiate the connection spontaneously causing new connections to not have set the state->initiator flag properly.
* bap: Mark devices to auto-connectLuiz Augusto von Dentz2023-03-291-0/+1
| | | | | This makes devices with BAP support to auto-connect once they start advertising.
* l2test: Fix setting mode for BR/EDR l2cap socketSimon Mikuda2023-03-282-1/+23
| | | | | BT_MODE_* enums are used only for socket SOL_BLUETOOTH, option BT_MODE Otherwise we should use L2CAP_MODE_* enums.
* l2test: Enable hex input for PSMSimon Mikuda2023-03-281-1/+1
|
* monitor: Cache IRK being parsedLuiz Augusto von Dentz2023-03-273-0/+29
| | | | | | | This caches any IRK being parsed so they can be used to resolve addresses later which fixes the problem of only being able to resolve addresses if the monitor happens to be active while SMP exchange the keys.
* monitor/att: Fix not loading gatt_db for devices using RPALuiz Augusto von Dentz2023-03-271-1/+7
| | | | | | Device using RPA have its storage using its identity address so this uses keys_resolve_identity to attempt to resolve the destination address instead of always using the connection address.
* monitor/att: Print value when printing descriptorsLuiz Augusto von Dentz2023-03-271-0/+52
| | | | | | | | | | | | This prints the value attribute information when print attribute descriptors: < ACL Data TX: Handle 3585 flags 0x00 dlen 9 ATT: Write Request (0x12) len 4 Handle: 0x002c Type: Client Characteristic Configuration (0x2902) Value Handle: 0x002b Type: Battery Level (0x2a19) Data: 0100 Notification (0x01)
* shared/gatt-db: Make gatt_db_attribute_get_value publicLuiz Augusto von Dentz2023-03-272-6/+8
| | | | | This makes gatt_db_attribute_get_value public so it can be used by the likes of btmon.
* client: Add samples init scriptsLuiz Augusto von Dentz2023-03-2411-0/+53
| | | | | This adds sample init scripts that can be passed to bluetoothctl for testing.
* shared/shell: Add support for -i/--init-scriptLuiz Augusto von Dentz2023-03-241-17/+142
| | | | | | | | | | | | | | This adds support for -i/--init-script which can be used to provide a file with commands to be initialized, the commands are then run in sequence after completing: client/bluetoothctl -i client/power-on-off.bt Agent registered Changing power on succeeded [CHG] Controller A8:7E:EA:56:87:D5 Pairable: yes [CHG] Controller 98:8D:46:EE:6D:16 Pairable: yes [CHG] Controller 98:8D:46:EE:6D:16 PowerState: on-disabling AdvertisementMonitor path registered
* bap: Fix not continue selecting if endpoint respond with an errorLuiz Augusto von Dentz2023-03-241-1/+3
| | | | | | If the endpoint respond with an error we shall decrement selecting counter and proceed to check if there is any stream that can be configured.
* monitor: Fix printing Signed Write CommandSimon Mikuda2023-03-231-2/+2
| | | | | | | | | | Data field were print twice (1 time incorrectly): > ACL Data RX: Handle 64 flags 0x02 dlen 19 ATT: Signed Write Command (0xd2) len 14 Handle: 0x006f Type: Vendor specific (f7debc9a-7856-3412-7856-341278563412) Data: 0800000087f303c224516133 Data: Signature: 0800000087f303c224516133
* monitor: Fix crash when there is no write handlerSimon Mikuda2023-03-231-1/+1
|
* obexd: reject to accept file when replying reject messageAaron_shen2023-03-211-1/+7
| | | | | | | | It will accept file when obex agent replied any message event though the message is org.bluez.obex.Error.Rejected. The patch helps to reject a Bluetooth object push request if user replied "org.bluez.obex.Error.Rejected" message according to the doc/obex-agent-api.txt.
* audio/transport: Propagate errors from avrcp_set_volume to DBusMarijn Suijten2023-03-211-11/+23
| | | | | | | | | | | | | | | Any error while setting absolute volume on the peer, or notifying the peer of changes was previously going completely unnoticed. Propagate it to the logs and back to the DBus "Volume" property setter so that they aren't misled into thinking that the AVRCP command succeeded. Note that an error is mostly harmless when the setter of the property is an audio sink and the peer the audio source: in this case we're only _notifying_ the peer of the change when it has already been applied on the sink. Also improve the other two error messages to more closely describe what was "invalid" about the argument.
* mesh: On exit free timer for filtering duplicatesInga Stotland2023-03-201-1/+5
| | | | | This frees resources associated with duplicate filter timer when destroying management IO.
* tools/mesh-cfgclient: Auto request own composition dataInga Stotland2023-03-174-2/+26
| | | | | | | | When attaching a local provisioner node, always request own composition data to accommodate functional consolidation of regular and remote provisioning mechanisms. The knowledge of the own node composition is necessary for provisioning initiation and self configuration.
* tools/mesh-cfgclient: Prevent storing duplicate modelsInga Stotland2023-03-172-5/+21
| | | | | | | This fixes the situation when subsequent requests to get a node composition result in appending element's model list with duplicate models. This adds a check for a presence of a model on an element when attempting to add a new model ID to a model list on this element.
* doc: describe new ISO Transport propertiesPauli Virtanen2023-03-171-0/+40
| | | | Document the currently undocumented transport QoS properties.
* transport: add CIG/CIS/PHY properties, don't show unset QoS propertiesPauli Virtanen2023-03-171-6/+61
| | | | | | | | Add CIG, CIS, and PHY properties to BAP transport. The other QoS properties are there, and these may also be useful to clients, e.g. to manage CIG/CIS allocation as client. Hide transport QoS properties when they are not configured.
* shared/gatt-client: Fix not creating a request for notificationsLuiz Augusto von Dentz2023-03-171-17/+15
| | | | | | | | | Notifications were using bt_att_send directly instead of bt_gatt_client_write_value thus it wouldn't create a request which causes the instance to not be able to track it which in turn may cause the client to trigger its idle callback too early. Fixes: https://github.com/bluez/bluez/issues/490
* mesh: Don't send Prov Failed on non-existant linksBrian Gix2023-03-151-2/+4
| | | | | | If remote device does not respond to a Prov Link Open request, then the callbacks do not get established, and attempting to send Failure messages on the non-existent link rersult in seg fault.
* mesh: Make MGMT mesh-io less noisyBrian Gix2023-03-151-3/+3
| | | | Remove excessive logging traffic
* mesh: Filter originated Provisioning Data packetsBrian Gix2023-03-151-11/+47
| | | | | | | The mesh daemon can process incoming mesh packets on more than one controller, but if a Provisioning data packet that originated from the local daemon is received by a different controller, it must be filtered and disregarded, or it will break the provisioning protocol.
* mesh: Loopback unprovisioned beaconsBrian Gix2023-03-142-7/+69
| | | | | | | | | | Because the daemon explicitly supports multiple nodes, we need local Config Clients to be able to see local unprovisioned devices. This loops the unprovisioned beacon, so that local Provisioning servers can see it. Fixes Issue: https://github.com/bluez/bluez/issues/341
* mesh: Fix uninitialized memory usageBrian Gix2023-03-141-1/+1
| | | | | When attempting to cancel an unknown Scan request structure must be NULL initialized.
* shared/gatt-client: Fix crash on bt_gatt_client_idle_unregisterLuiz Augusto von Dentz2023-03-141-0/+3
| | | | | | | | | | | | | | | | | | | This fixes the following crash: Invalid read of size 8 at 0x1E1E0B: bt_gatt_client_idle_unregister (gatt-client.c:3812) by 0x1EB6BD: bt_bap_detach (bap.c:3821) by 0x1EB6BD: bt_bap_detach (bap.c:3808) by 0x1D5631: queue_foreach (queue.c:207) by 0x1DCAA3: disconnect_cb (att.c:713) by 0x1F4404: watch_callback (io-glib.c:157) by 0x48BBC7E: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.7400.6) by 0x4912117: ??? (in /usr/lib64/libglib-2.0.so.0.7400.6) by 0x48BB24E: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.7400.6) by 0x1F4A54: mainloop_run (mainloop-glib.c:66) by 0x1F4E21: mainloop_run_with_signal (mainloop-notify.c:188) by 0x1304B4: main (main.c:1428) Address 0x28 is not stack'd, malloc'd or (recently) free'd
* btmon: Fix decoding truncated dataƁukasz Rymanowski2023-03-142-4/+4
| | | | | | | | Some platforms use different filtering and for this purpose, some of the ACL/SCO/ISO/SDP data is truncated. In such a case, included length is smaller than the original size. Without this fix, btmon stops working after first truncated packet.
* shared/bap: fix Locations, Context to be PACS not PAC propertiesPauli Virtanen2023-03-141-12/+62
| | | | | | | | | Audio Locations and Contexts are properties of the PACS service, not of individual PAC, as these are device-wide bitmaps and a single characteristic may exist on PACS server (PACS v1.0 Sec 3). Move the attributes out from bt_bap_pac to bt_bap_pacs, and actually keep track of the values.
* device: Fix crash attempting to read Sets propertyLuiz Augusto von Dentz2023-03-141-1/+6
| | | | | | | | | | | | | | | | | | | | | The following set can be observed when a sirk is exists but it is encrypted leading to info->set to not be set: Invalid read of size 8 at 0x1ACDF0: append_set (device.c:1662) by 0x1FFEFFF7DF: ??? by 0x1D4461: queue_foreach (queue.c:207) by 0x1AC8DE: dev_property_get_set (device.c:1700) by 0x1CF3E2: append_property (object.c:498) by 0x1CFA91: append_properties (object.c:527) by 0x1CFAFD: append_interface (object.c:542) by 0x48D7CEF: g_slist_foreach (gslist.c:887) by 0x1CF5A7: append_interfaces (object.c:1104) by 0x1CF5A7: append_object (object.c:1119) by 0x48D7CEF: g_slist_foreach (gslist.c:887) by 0x1CF5D0: append_object (object.c:1122) by 0x48D7CEF: g_slist_foreach (gslist.c:887) Address 0x8 is not stack'd, malloc'd or (recently) free'd
* shared/csip: Fix crash on bt_csip_get_sirkLuiz Augusto von Dentz2023-03-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | This fixes the following trace: Invalid read of size 1 at 0x1F4282: bt_csip_get_sirk (csip.c:812) by 0x176B21: csip_ready (csip.c:259) by 0x1F3C74: csip_notify_ready (csip.c:578) by 0x1F3C74: csip_idle (csip.c:659) by 0x1DCDCC: idle_notify (gatt-client.c:171) by 0x1D579A: queue_remove_if (queue.c:279) by 0x1D584F: queue_remove_all (queue.c:321) by 0x1E036F: notify_client_idle (gatt-client.c:180) by 0x1E036F: request_unref (gatt-client.c:199) by 0x1DC60D: destroy_att_send_op (att.c:211) by 0x1DC60D: handle_rsp (att.c:874) by 0x1DC60D: can_read_data (att.c:1064) by 0x1F43F4: watch_callback (io-glib.c:157) by 0x48BBC7E: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.7400.6) by 0x4912117: ??? (in /usr/lib64/libglib-2.0.so.0.7400.6) by 0x48BB24E: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.7400.6) Address 0x0 is not stack'd, malloc'd or (recently) free'd
* shared/gatt-client: Introduce bt_gatt_client_ref_safeLuiz Augusto von Dentz2023-03-141-3/+18
| | | | | | This introduces bt_gatt_client_ref_save which ensures the instaces which are being destroyed, e.g. ref_count = 0, do not attempt to reach callbacks.
* shared/csip: Fix not unregistering idle callback on detachLuiz Augusto von Dentz2023-03-141-0/+2
| | | | | This make sure idle callback is unregistered before bt_gatt_client is unref.
* shared/bap: Fix not unregistering idle callback on detachLuiz Augusto von Dentz2023-03-141-0/+2
| | | | | This make sure idle callback is unregistered before bt_gatt_client is unref.
* mesh: Fix node when loading from storageInga Stotland2023-03-121-3/+9
| | | | | | | | | This fixes adding mandatory models (config server, remote provisioner) to a node whose configuration is being loaded from storage: mesh_model_add() was called with a wrong argument. Was: mesh_model_add(..., PRIMARY_ELE_IDX, ...); Correct: mesh_model_add(..., ele->models, ...);
* client: Use AdvertisingFlags when availableLuiz Augusto von Dentz2023-03-101-24/+55
| | | | | This prints devices not discoverable in grey so the user are able to distict when for example set members are actually visible.
* client: Add support for DeviceSet proxyLuiz Augusto von Dentz2023-03-101-10/+103
|