Diff between c64fd37802d3609522d8121a21126ea797bf4e23 and eb907a19b9d3e69e8e940d9e4e6a47de5d6f9647

Changed Files

File Additions Deletions Status
src/shared/hciemu.c +8 -2 modified

Full Patch

diff --git a/src/shared/hciemu.c b/src/shared/hciemu.c
index af8007c..90c21f3 100644
--- a/src/shared/hciemu.c
+++ b/src/shared/hciemu.c
@@ -162,10 +162,16 @@ static gboolean receive_btdev(GIOChannel *channel, GIOCondition condition,
 	fd = g_io_channel_unix_get_fd(channel);
 
 	len = read(fd, buf, sizeof(buf));
-	if (len < 0)
+	if (len < 1)
 		return FALSE;
 
-	btdev_receive_h4(btdev, buf, len);
+	switch (buf[0]) {
+	case BT_H4_CMD_PKT:
+	case BT_H4_ACL_PKT:
+	case BT_H4_SCO_PKT:
+		btdev_receive_h4(btdev, buf, len);
+		break;
+	}
 
 	return TRUE;
 }