osmux: Delay osmux enable of conn until remote addr is configured by MDCX
Change-Id: I243e53681ebeb3d9cd8ed38bb132172b41745795
diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c
index 4423194..536b65b 100644
--- a/src/libosmo-mgcp/mgcp_osmux.c
+++ b/src/libosmo-mgcp/mgcp_osmux.c
@@ -559,6 +559,7 @@
* overlapping RTP SSRC traveling to the BTSes behind the BSC,
* similarly, for flows traveling to the MSC.
*/
+ struct in_addr addr_unset = {};
static const uint32_t rtp_ssrc_winlen = UINT32_MAX / (OSMUX_CID_MAX + 1);
uint16_t osmux_dummy = endp->cfg->osmux_dummy;
@@ -570,6 +571,13 @@
return -1;
}
+ /* Wait until we have the connection information from MDCX */
+ if (memcmp(&conn->end.addr, &addr_unset, sizeof(addr_unset)) == 0) {
+ LOGPCONN(conn->conn, DLMGCP, LOGL_INFO,
+ "Osmux remote address/port still unknown\n");
+ return -1;
+ }
+
conn->osmux.in = osmux_handle_lookup(endp->cfg, addr, port);
if (!conn->osmux.in) {
LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,