Disconnect initiated by local host should get Connection Terminated by
Local Host (0x16) as termination reason.
---
emulator/btdev.c | 4 +++-
monitor/bt.h | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/emulator/btdev.c b/emulator/btdev.c
index 0eec1d9f2..f9260511a 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
@@ -749,7 +749,9 @@ static int cmd_disconnect_complete(struct btdev *dev, const void *data,
return 0;
}
- disconnect_complete(dev, conn->handle, BT_HCI_ERR_SUCCESS, cmd->reason);
+ /* Local host has different reason (Core v5.3 Vol 4 Part E Sec 7.1.6) */
+ disconnect_complete(dev, conn->handle, BT_HCI_ERR_SUCCESS,
+ BT_HCI_ERR_LOCAL_HOST_TERM);
if (conn->link)
disconnect_complete(conn->link->dev, conn->link->handle,
diff --git a/monitor/bt.h b/monitor/bt.h
index 2548f0dcd..b99ada0b2 100644
--- a/monitor/bt.h
+++ b/monitor/bt.h
@@ -3716,6 +3716,7 @@ struct bt_hci_evt_le_big_info_adv_report {
#define BT_HCI_ERR_COMMAND_DISALLOWED 0x0c
#define BT_HCI_ERR_UNSUPPORTED_FEATURE 0x11
#define BT_HCI_ERR_INVALID_PARAMETERS 0x12
+#define BT_HCI_ERR_LOCAL_HOST_TERM 0x16
#define BT_HCI_ERR_UNSPECIFIED_ERROR 0x1f
#define BT_HCI_ERR_ADV_TIMEOUT 0x3c
#define BT_HCI_ERR_CONN_FAILED_TO_ESTABLISH 0x3e
--
2.40.1