Message ID | 20220418042629.Bluez.v1.1.I6ab300fa4999c9310f4cb6fc09b1290edb6b2c2b@changeid (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Adding bonded flag to D-Bus property | expand |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=632916 ---Test result--- Test Summary: CheckPatch PASS 3.15 seconds GitLint PASS 2.12 seconds Prep - Setup ELL PASS 50.93 seconds Build - Prep PASS 0.78 seconds Build - Configure PASS 10.43 seconds Build - Make FAIL 1394.11 seconds Make Check FAIL 5.82 seconds Make Check w/Valgrind FAIL 350.53 seconds Make Distcheck PASS 271.29 seconds Build w/ext ELL - Configure PASS 10.32 seconds Build w/ext ELL - Make FAIL 1367.40 seconds Incremental Build with patchesFAIL 1420.73 seconds Details ############################## Test: Build - Make - FAIL Desc: Build the BlueZ source tree Output: tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12364:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12364 | int main(int argc, char *argv[]) | ^~~~ unit/test-avdtp.c: In function ‘main’: unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 766 | int main(int argc, char *argv[]) | ^~~~ unit/test-avrcp.c: In function ‘main’: unit/test-avrcp.c:989:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 989 | int main(int argc, char *argv[]) | ^~~~ src/device.c: In function ‘device_set_bonded’: src/device.c:6137:2: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 6137 | struct bearer_state *state = get_state(device, bdaddr_type); | ^~~~~~ cc1: all warnings being treated as errors make[1]: *** [Makefile:10248: src/bluetoothd-device.o] Error 1 make: *** [Makefile:4310: all] Error 2 ############################## Test: Make Check - FAIL Desc: Run 'make check' Output: src/device.c: In function ‘device_set_bonded’: src/device.c:6137:2: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 6137 | struct bearer_state *state = get_state(device, bdaddr_type); | ^~~~~~ cc1: all warnings being treated as errors make[1]: *** [Makefile:10248: src/bluetoothd-device.o] Error 1 make: *** [Makefile:11283: check] Error 2 ############################## Test: Make Check w/Valgrind - FAIL Desc: Run 'make check' with Valgrind Output: tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12364:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12364 | int main(int argc, char *argv[]) | ^~~~ src/device.c: In function ‘device_set_bonded’: src/device.c:6137:2: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 6137 | struct bearer_state *state = get_state(device, bdaddr_type); | ^~~~~~ cc1: all warnings being treated as errors make[1]: *** [Makefile:10248: src/bluetoothd-device.o] Error 1 make: *** [Makefile:4310: all] Error 2 ############################## Test: Build w/ext ELL - Make - FAIL Desc: Build BlueZ source with '--enable-external-ell' configuration Output: tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12364:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12364 | int main(int argc, char *argv[]) | ^~~~ unit/test-avdtp.c: In function ‘main’: unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 766 | int main(int argc, char *argv[]) | ^~~~ unit/test-avrcp.c: In function ‘main’: unit/test-avrcp.c:989:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 989 | int main(int argc, char *argv[]) | ^~~~ src/device.c: In function ‘device_set_bonded’: src/device.c:6137:2: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 6137 | struct bearer_state *state = get_state(device, bdaddr_type); | ^~~~~~ cc1: all warnings being treated as errors make[1]: *** [Makefile:10248: src/bluetoothd-device.o] Error 1 make: *** [Makefile:4310: all] Error 2 ############################## Test: Incremental Build with patches - FAIL Desc: Incremental build per patch in the series Output: tools/mgmt-tester.c: In function ‘main’: tools/mgmt-tester.c:12364:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 12364 | int main(int argc, char *argv[]) | ^~~~ unit/test-avdtp.c: In function ‘main’: unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 766 | int main(int argc, char *argv[]) | ^~~~ unit/test-avrcp.c: In function ‘main’: unit/test-avrcp.c:989:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without 989 | int main(int argc, char *argv[]) | ^~~~ src/device.c: In function ‘device_set_bonded’: src/device.c:6137:2: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 6137 | struct bearer_state *state = get_state(device, bdaddr_type); | ^~~~~~ cc1: all warnings being treated as errors make[1]: *** [Makefile:10248: src/bluetoothd-device.o] Error 1 make: *** [Makefile:4310: all] Error 2 --- Regards, Linux Bluetooth
diff --git a/doc/device-api.txt b/doc/device-api.txt index 4e824d2dec17..6162755f954c 100644 --- a/doc/device-api.txt +++ b/doc/device-api.txt @@ -171,6 +171,10 @@ Properties string Address [readonly] Indicates if the remote device is paired. + boolean Bonded [readonly] + + Indicates if the remote device is bonded. + boolean Connected [readonly] Indicates if the remote device is currently connected. diff --git a/src/device.c b/src/device.c index 8dc12d026827..1a7afa8fc5c0 100644 --- a/src/device.c +++ b/src/device.c @@ -1042,6 +1042,22 @@ static gboolean dev_property_get_paired(const GDBusPropertyTable *property, return TRUE; } +static gboolean dev_property_get_bonded(const GDBusPropertyTable *property, + DBusMessageIter *iter, void *data) +{ + struct btd_device *dev = data; + dbus_bool_t val; + + if (dev->bredr_state.bonded || dev->le_state.bonded) + val = TRUE; + else + val = FALSE; + + dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &val); + + return TRUE; +} + static gboolean dev_property_get_legacy(const GDBusPropertyTable *property, DBusMessageIter *iter, void *data) { @@ -3120,6 +3136,7 @@ static const GDBusPropertyTable device_properties[] = { { "Icon", "s", dev_property_get_icon, NULL, dev_property_exists_icon }, { "Paired", "b", dev_property_get_paired }, + { "Bonded", "b", dev_property_get_bonded }, { "Trusted", "b", dev_property_get_trusted, dev_property_set_trusted }, { "Blocked", "b", dev_property_get_blocked, dev_property_set_blocked }, { "LegacyPairing", "b", dev_property_get_legacy }, @@ -6117,14 +6134,25 @@ void device_set_bonded(struct btd_device *device, uint8_t bdaddr_type) if (!device) return; - DBG(""); + struct bearer_state *state = get_state(device, bdaddr_type); - if (bdaddr_type == BDADDR_BREDR) - device->bredr_state.bonded = true; - else - device->le_state.bonded = true; + if (state->bonded) + return; + + DBG("setting bonded for device to true"); + + state->bonded = true; btd_device_set_temporary(device, false); + + /* If the other bearer state was already true we don't need to + * send any property signals. + */ + if (device->bredr_state.bonded == device->le_state.bonded) + return; + + g_dbus_emit_property_changed(dbus_conn, device->path, + DEVICE_INTERFACE, "Bonded"); } void device_set_legacy(struct btd_device *device, bool legacy)