btdev: report right reason for local Disconnect complete
authorPauli Virtanen <pav@iki.fi>
Sun, 21 May 2023 15:27:37 +0000 (15:27 +0000)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 5 Jan 2024 13:34:03 +0000 (19:04 +0530)
Disconnect initiated by local host should get Connection Terminated by
Local Host (0x16) as termination reason.

emulator/btdev.c
monitor/bt.h

index 0eec1d9..f926051 100755 (executable)
@@ -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,
index ab3e748..7f62862 100755 (executable)
@@ -3715,6 +3715,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