Move legacy verification to a new function
diff --git a/src/adapter.c b/src/adapter.c
index 3188974..5660097 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3002,6 +3002,26 @@
adapter_emit_device_found(adapter, dev);
}
+static gboolean pairing_is_legacy(bdaddr_t *local, bdaddr_t *peer,
+ const uint8_t *eir, const char *name)
+{
+ unsigned char features[8];
+
+ if (eir)
+ return FALSE;
+
+ if (name == NULL)
+ return TRUE;
+
+ if (read_remote_features(local, peer, NULL, features) < 0)
+ return TRUE;
+
+ if (features[0] & 0x01)
+ return FALSE;
+ else
+ return TRUE;
+}
+
void adapter_update_found_devices(struct btd_adapter *adapter, bdaddr_t *bdaddr,
uint32_t class, int8_t rssi, uint8_t *data)
{
@@ -3011,7 +3031,6 @@
char *alias, *name;
gboolean new_dev, legacy;
name_status_t name_status;
- unsigned char features[8];
const char *dev_name;
int err;
@@ -3037,18 +3056,7 @@
create_name(filename, PATH_MAX, STORAGEDIR, local_addr, "names");
name = textfile_get(filename, peer_addr);
- if (data)
- legacy = FALSE;
- else if (name == NULL)
- legacy = TRUE;
- else if (read_remote_features(&adapter->bdaddr, bdaddr, NULL,
- features) == 0) {
- if (features[0] & 0x01)
- legacy = FALSE;
- else
- legacy = TRUE;
- } else
- legacy = TRUE;
+ legacy = pairing_is_legacy(&adapter->bdaddr, bdaddr, data, name);
/* Complete EIR names are always used. Shortened EIR names are only
* used if there is no name already in storage. */