From 426a9d9103f127f6939a941d975fc32eca8bcbfc Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Tue, 16 Oct 2018 15:31:45 +0200 Subject: [PATCH] osmux: Avoid initing output without enabling osmux Otherwise we end up in a weird state where we have timers set up but osmux is still flagged as not enabled. Cherry-picked from openbsc cad739d2386640a68c24e3d470ddacdcaf377561. Change-Id: I0a334842463d311bc80a980e60fb702a0a9ad610 --- src/libosmo-mgcp/mgcp_osmux.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index f8422321b..9ae82cdf2 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -284,7 +284,7 @@ static void scheduled_tx_bts_cb(struct msgb *msg, void *data) }; rate_ctr_inc(&conn_net->rate_ctr_group->ctr[RTP_PACKETS_TX_CTR]); - rate_ctr_add(&conn_net->rate_ctr_group->ctr[RTP_OCTETS_TX_CTR], msg->len); + rate_ctr_add(&conn_net->rate_ctr_group->ctr[RTP_OCTETS_TX_CTR], msg->len); /* Send RTP data to BTS */ /* FIXME: Get rid of conn_bts and conn_net! */ @@ -530,10 +530,6 @@ int osmux_enable_conn(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn, return -1; } - osmux_xfrm_output_init(&conn->osmux.out, - (conn->osmux.cid * rtp_ssrc_winlen) + - (random() % rtp_ssrc_winlen)); - conn->osmux.in = osmux_handle_lookup(endp->cfg, addr, port); if (!conn->osmux.in) { LOGP(DLMGCP, LOGL_ERROR, "Cannot allocate input osmux handle for conn:%s\n", @@ -546,6 +542,10 @@ int osmux_enable_conn(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn, return -1; } + osmux_xfrm_output_init(&conn->osmux.out, + (conn->osmux.cid * rtp_ssrc_winlen) + + (random() % rtp_ssrc_winlen)); + switch (endp->cfg->role) { case MGCP_BSC_NAT: conn->type = MGCP_OSMUX_BSC_NAT;