aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-10-16 15:31:45 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2018-10-16 15:31:49 +0200
commit426a9d9103f127f6939a941d975fc32eca8bcbfc (patch)
tree965782616a416421e35a0607c06e2408d9f39435
parent17bf60322223dfc48d85bba9b39e86d4ee285d3a (diff)
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
-rw-r--r--src/libosmo-mgcp/mgcp_osmux.c10
1 files 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;