Diff between 0143a51c32e82700e5d1029b3f9c8ad6abf948e9 and cee10685aeaccebb2d7b2e13961b5349754c731e

Changed Files

File Additions Deletions Status
emulator/bthost.c +34 -0 modified

Full Patch

diff --git a/emulator/bthost.c b/emulator/bthost.c
index b5895b2..ba59431 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
@@ -782,6 +782,32 @@ static void evt_io_cap_request(struct bthost *bthost, const void *data,
 							&cp, sizeof(cp));
 }
 
+static void evt_user_confirm_request(struct bthost *bthost, const void *data,
+								uint8_t len)
+{
+	const struct bt_hci_evt_user_confirm_request *ev = data;
+	struct btconn *conn;
+
+	if (len < sizeof(*ev))
+		return;
+
+	conn = bthost_find_conn_by_bdaddr(bthost, ev->bdaddr);
+	if (!conn)
+		return;
+
+	send_command(bthost, BT_HCI_CMD_USER_CONFIRM_REQUEST_REPLY,
+								ev->bdaddr, 6);
+}
+
+static void evt_simple_pairing_complete(struct bthost *bthost, const void *data,
+								uint8_t len)
+{
+	const struct bt_hci_evt_simple_pairing_complete *ev = data;
+
+	if (len < sizeof(*ev))
+		return;
+}
+
 static void evt_le_conn_complete(struct bthost *bthost, const void *data,
 								uint8_t len)
 {
@@ -882,6 +908,14 @@ static void process_evt(struct bthost *bthost, const void *data, uint16_t len)
 		evt_io_cap_request(bthost, param, hdr->plen);
 		break;
 
+	case BT_HCI_EVT_USER_CONFIRM_REQUEST:
+		evt_user_confirm_request(bthost, param, hdr->plen);
+		break;
+
+	case BT_HCI_EVT_SIMPLE_PAIRING_COMPLETE:
+		evt_simple_pairing_complete(bthost, param, hdr->plen);
+		break;
+
 	case BT_HCI_EVT_LE_META_EVENT:
 		evt_le_meta_event(bthost, param, hdr->plen);
 		break;