diff --git a/android/android-tester.c b/android/android-tester.c
index eb5c513..ff14fc8 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
bthost_set_cmd_complete_cb(bthost, emu_connectable_complete, data);
if (data->hciemu_type == HCIEMU_TYPE_LE)
- bthost_set_adv_enable(bthost, 0x01);
+ bthost_set_adv_enable(bthost, 0x01, 0x00);
else
bthost_write_scan_enable(bthost, 0x03);
}
diff --git a/emulator/bthost.c b/emulator/bthost.c
index 298edcf..b30999b 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
break;
case BT_HCI_CMD_LE_LTK_REQ_NEG_REPLY:
break;
+ case BT_HCI_CMD_LE_SET_ADV_DATA:
+ break;
default:
printf("Unhandled cmd_complete opcode 0x%04x\n", opcode);
break;
send_command(bthost, BT_HCI_CMD_WRITE_SCAN_ENABLE, &scan, 1);
}
-void bthost_set_adv_enable(struct bthost *bthost, uint8_t enable)
+void bthost_set_adv_enable(struct bthost *bthost, uint8_t enable, uint8_t flags)
{
struct bt_hci_cmd_le_set_adv_parameters cp;
send_command(bthost, BT_HCI_CMD_LE_SET_ADV_PARAMETERS,
&cp, sizeof(cp));
+ if (flags) {
+ struct bt_hci_cmd_le_set_adv_data adv_cp;
+
+ memset(adv_cp.data, 0, 31);
+
+ adv_cp.data[0] = 0x02; /* Field length */
+ adv_cp.data[1] = 0x01; /* Flags */
+ adv_cp.data[2] = flags;
+
+ adv_cp.data[3] = 0x00; /* Field terminator */
+
+ adv_cp.len = 1 + adv_cp.data[0];
+
+ send_command(bthost, BT_HCI_CMD_LE_SET_ADV_DATA, &adv_cp,
+ sizeof(adv_cp));
+ }
+
send_command(bthost, BT_HCI_CMD_LE_SET_ADV_ENABLE, &enable, 1);
}
diff --git a/emulator/bthost.h b/emulator/bthost.h
index b00bcd6..4a7e2bd 100644
--- a/emulator/bthost.h
+++ b/emulator/bthost.h
void bthost_write_scan_enable(struct bthost *bthost, uint8_t scan);
-void bthost_set_adv_enable(struct bthost *bthost, uint8_t enable);
+void bthost_set_adv_enable(struct bthost *bthost, uint8_t enable,
+ uint8_t flags);
void bthost_write_ssp_mode(struct bthost *bthost, uint8_t mode);
diff --git a/tools/l2cap-tester.c b/tools/l2cap-tester.c
index 79362b2..6841341 100644
--- a/tools/l2cap-tester.c
+++ b/tools/l2cap-tester.c
bthost = hciemu_client_get_host(data->hciemu);
bthost_set_cmd_complete_cb(bthost, client_cmd_complete, user_data);
if (data->hciemu_type == HCIEMU_TYPE_LE)
- bthost_set_adv_enable(bthost, 0x01);
+ bthost_set_adv_enable(bthost, 0x01, 0x00);
else
bthost_write_scan_enable(bthost, 0x03);
}
diff --git a/tools/mgmt-tester.c b/tools/mgmt-tester.c
index 16c3656..c813314 100644
--- a/tools/mgmt-tester.c
+++ b/tools/mgmt-tester.c
bthost = hciemu_client_get_host(data->hciemu);
bthost_set_cmd_complete_cb(bthost, client_cmd_complete, data);
if (data->hciemu_type == HCIEMU_TYPE_LE)
- bthost_set_adv_enable(bthost, 0x01);
+ bthost_set_adv_enable(bthost, 0x01, 0x00);
else
bthost_write_scan_enable(bthost, 0x03);
}
diff --git a/tools/smp-tester.c b/tools/smp-tester.c
index 12e0bed..c9639e6 100644
--- a/tools/smp-tester.c
+++ b/tools/smp-tester.c
bthost = hciemu_client_get_host(data->hciemu);
bthost_set_cmd_complete_cb(bthost, client_connectable_complete, data);
- bthost_set_adv_enable(bthost, 0x01);
+ bthost_set_adv_enable(bthost, 0x01, 0x00);
}
static void setup_powered_client(const void *test_data)