Diff between 0e831d8e67096eacfe9870f8d8c1134fc0b045d3 and 9f167d495adb47cef9482ed6c4344d4c953d26b8

Changed Files

File Additions Deletions Status
profiles/audio/bap.c +8 -14 modified
src/shared/bap.c +2 -0 modified

Full Patch

diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
index a37e62f..fd9b751 100644
--- a/profiles/audio/bap.c
+++ b/profiles/audio/bap.c
@@ -39,6 +39,7 @@
 #include "src/btd.h"
 #include "src/dbus-common.h"
 #include "src/shared/util.h"
+#include "src/shared/io.h"
 #include "src/shared/att.h"
 #include "src/shared/queue.h"
 #include "src/shared/gatt-db.h"
@@ -1868,8 +1869,7 @@ static void recreate_cig(struct bap_setup *setup)
 	queue_foreach(sessions, recreate_cig_session, &info);
 }
 
-static gboolean setup_io_disconnected(GIOChannel *io, GIOCondition cond,
-							gpointer user_data)
+static void setup_io_disconnected(int cond, void *user_data)
 {
 	struct bap_setup *setup = user_data;
 
@@ -1882,8 +1882,6 @@ static gboolean setup_io_disconnected(GIOChannel *io, GIOCondition cond,
 	/* Check if connecting recreate IO */
 	if (!is_cig_busy(setup->ep->data, setup->qos.ucast.cig_id))
 		recreate_cig(setup);
-
-	return FALSE;
 }
 
 static void bap_connect_bcast_io_cb(GIOChannel *chan, GError *err,
@@ -1964,8 +1962,7 @@ static void setup_connect_io(struct bap_data *data, struct bap_setup *setup,
 		return;
 	}
 
-	setup->io_id = g_io_add_watch(io, G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-						setup_io_disconnected, setup);
+	setup->io_id = io_glib_add_err_watch(io, setup_io_disconnected, setup);
 
 	setup->io = io;
 	setup->cig_active = !defer;
@@ -2024,8 +2021,7 @@ static void setup_connect_io_broadcast(struct bap_data *data,
 		return;
 	}
 
-	setup->io_id = g_io_add_watch(io, G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-					setup_io_disconnected, setup);
+	setup->io_id = io_glib_add_err_watch(io, setup_io_disconnected, setup);
 
 	setup->io = io;
 
@@ -2691,9 +2687,8 @@ static void bap_connecting(struct bt_bap_stream *stream, bool state, int fd,
 
 	if (!setup->io) {
 		io = g_io_channel_unix_new(fd);
-		setup->io_id = g_io_add_watch(io,
-					      G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-					      setup_io_disconnected, setup);
+		setup->io_id = io_glib_add_err_watch(io, setup_io_disconnected,
+									setup);
 		setup->io = io;
 	} else
 		io = setup->io;
@@ -2736,9 +2731,8 @@ static void bap_connecting_bcast(struct bt_bap_stream *stream, bool state,
 
 	if (!setup->io) {
 		io = g_io_channel_unix_new(fd);
-		setup->io_id = g_io_add_watch(io,
-				G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-				setup_io_disconnected, setup);
+		setup->io_id = io_glib_add_err_watch(io, setup_io_disconnected,
+									setup);
 		setup->io = io;
 	} else
 		io = setup->io;
diff --git a/src/shared/bap.c b/src/shared/bap.c
index be35c2e..3758aa0 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -2779,6 +2779,8 @@ static struct bt_bap_stream_io *stream_io_new(struct bt_bap *bap, int fd)
 
 	DBG(bap, "fd %d", fd);
 
+	io_set_ignore_errqueue(io, true);
+
 	sio = new0(struct bt_bap_stream_io, 1);
 	sio->bap = bap;
 	sio->io = io;