pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-mgw/+/29318 )
Change subject: osmux: don't store conn ptr inside shared osmux_handle
......................................................................
osmux: don't store conn ptr inside shared osmux_handle
The struct osmux_handle is a shared structure which goes together 1-1
with libosmo-netif's struct osmux_in_handle, which is common to all CIDs
to be muxed together. Hence, it makes no sense to store a specific conn
object to it, since it actually manages several of them. Hence, all the
conn specific stuff must be handled beforehand, not at osmux deliver
time.
Related: SYS#5987
Change-Id: Ie739b556e9eb7d3133e798831a09728c7cc87135
---
M src/libosmo-mgcp/mgcp_osmux.c
1 file changed, 3 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/18/29318/1
diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c
index d9bccb4..f72af81 100644
--- a/src/libosmo-mgcp/mgcp_osmux.c
+++ b/src/libosmo-mgcp/mgcp_osmux.c
@@ -36,7 +36,6 @@
struct osmux_handle {
struct llist_head head;
- struct mgcp_conn_rtp *conn;
struct osmux_in_handle *in;
struct osmo_sockaddr rem_addr;
int refcnt;
@@ -48,14 +47,8 @@
static void osmux_deliver_cb(struct msgb *batch_msg, void *data)
{
struct osmux_handle *handle = data;
- struct mgcp_conn_rtp *conn = handle->conn;
socklen_t dest_len;
- if (!conn->end.output_enabled) {
- msgb_free(batch_msg);
- return;
- }
-
switch (handle->rem_addr.u.sa.sa_family) {
case AF_INET6:
dest_len = sizeof(handle->rem_addr.u.sin6);
@@ -130,7 +123,6 @@
h = talloc_zero(osmux, struct osmux_handle);
if (!h)
return NULL;
- h->conn = conn;
h->rem_addr = *rem_addr;
h->refcnt++;
@@ -192,6 +184,9 @@
int ret;
struct msgb *msg;
+ if (!conn->end.output_enabled)
+ return -1;
+
if (conn->osmux.state != OSMUX_STATE_ENABLED) {
LOGPCONN(conn->conn, DOSMUX, LOGL_INFO, "forwarding RTP to Osmux conn not yet
enabled, dropping (cid=%d)\n",
conn->osmux.cid);
--
To view, visit
https://gerrit.osmocom.org/c/osmo-mgw/+/29318
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ie739b556e9eb7d3133e798831a09728c7cc87135
Gerrit-Change-Number: 29318
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange