aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2023-09-28 16:29:58 +0200
committerlaforge <laforge@osmocom.org>2023-10-24 19:38:04 +0000
commit86016256662d47efb8899d494a153592fc6e4c6a (patch)
tree2d059e6807fb62fa95336171e3709ca120809ca6
parent04d35cda72b533cbd9f74b1fa24753fbc3bd6e35 (diff)
stream_srv: Make osmo_stream_srv_clear_tx_queue() aware of osmo_io
-rw-r--r--src/stream_srv.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/stream_srv.c b/src/stream_srv.c
index e789584..1370e42 100644
--- a/src/stream_srv.c
+++ b/src/stream_srv.c
@@ -961,8 +961,19 @@ int osmo_stream_srv_recv(struct osmo_stream_srv *conn, struct msgb *msg)
void osmo_stream_srv_clear_tx_queue(struct osmo_stream_srv *conn)
{
- msgb_queue_free(&conn->tx_queue);
- osmo_fd_write_disable(&conn->ofd);
+ switch (conn->mode) {
+ case OSMO_STREAM_MODE_OSMO_FD:
+ msgb_queue_free(&conn->tx_queue);
+ osmo_fd_write_disable(&conn->ofd);
+ break;
+ case OSMO_STREAM_MODE_OSMO_IO:
+ osmo_iofd_txqueue_clear(conn->iofd);
+ break;
+ case OSMO_STREAM_MODE_UNKNOWN:
+ default:
+ break;
+ }
+
if (conn->flags & OSMO_STREAM_SRV_F_FLUSH_DESTROY)
osmo_stream_srv_destroy(conn);
}