osmux: Make sure to always use the right dummy sending method
Make sure to re-use the right method for nat traversal. Found
by Roch while looking at traces.
diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c
index 6e48949..f25c1fa 100644
--- a/openbsc/src/libmgcp/mgcp_protocol.c
+++ b/openbsc/src/libmgcp/mgcp_protocol.c
@@ -344,6 +344,14 @@
return create_resp(endp, 200, " OK", msg, trans_id, NULL, sdp_record);
}
+static void send_dummy(struct mgcp_endpoint *endp)
+{
+ if (endp->osmux)
+ osmux_send_dummy(endp);
+ else
+ mgcp_send_dummy(endp);
+}
+
/*
* handle incoming messages:
* - this can be a command (four letters, space, transaction id)
@@ -1019,10 +1027,7 @@
p->cfg->change_cb(tcfg, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX);
if (endp->conn_mode & MGCP_CONN_RECV_ONLY && tcfg->keepalive_interval != 0) {
- if (endp->osmux)
- osmux_send_dummy(endp);
- else
- mgcp_send_dummy(endp);
+ send_dummy(endp);
}
create_transcoder(endp);
@@ -1156,7 +1161,7 @@
if (endp->conn_mode & MGCP_CONN_RECV_ONLY &&
endp->tcfg->keepalive_interval != 0)
- mgcp_send_dummy(endp);
+ send_dummy(endp);
if (silent)
goto out_silent;
@@ -1326,7 +1331,7 @@
for (i = 1; i < tcfg->number_endpoints; ++i) {
struct mgcp_endpoint *endp = &tcfg->endpoints[i];
if (endp->conn_mode == MGCP_CONN_RECV_ONLY)
- mgcp_send_dummy(endp);
+ send_dummy(endp);
}
LOGP(DMGCP, LOGL_DEBUG, "Rescheduling trunk %d keepalive timer.\n",