diff options
author | Daniel Willmann <dwillmann@sysmocom.de> | 2023-09-28 16:29:58 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2023-10-24 19:38:04 +0000 |
commit | 86016256662d47efb8899d494a153592fc6e4c6a (patch) | |
tree | 2d059e6807fb62fa95336171e3709ca120809ca6 | |
parent | 04d35cda72b533cbd9f74b1fa24753fbc3bd6e35 (diff) |
stream_srv: Make osmo_stream_srv_clear_tx_queue() aware of osmo_io
Change-Id: I818fe4e3792ed88ae4d6fd6afb677b39264ab662
-rw-r--r-- | src/stream_srv.c | 15 |
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); } |