From 1fc432984c22fcf78b66723af0712be08e8fabde Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Thu, 5 Aug 2010 06:31:58 +0800 Subject: mgcp: Move the loopback code into the common send as well. --- openbsc/src/mgcp/mgcp_network.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/openbsc/src/mgcp/mgcp_network.c b/openbsc/src/mgcp/mgcp_network.c index 7de15aa6f..107d2fd56 100644 --- a/openbsc/src/mgcp/mgcp_network.c +++ b/openbsc/src/mgcp/mgcp_network.c @@ -154,6 +154,15 @@ static void patch_and_count(struct mgcp_endpoint *endp, struct mgcp_rtp_state *s static int send_to(struct mgcp_endpoint *endp, int dest, int is_rtp, struct sockaddr_in *addr, char *buf, int rc) { + struct mgcp_config *cfg = endp->cfg; + /* For loop toggle the destination and then dispatch. */ + if (cfg->audio_loop) + dest = !dest; + + /* Loop based on the conn_mode, maybe undoing the above */ + if (endp->conn_mode == MGCP_CONN_LOOPBACK) + dest = !dest; + if (dest == DEST_NETWORK) { if (is_rtp) { patch_and_count(endp, &endp->bts_state, @@ -263,14 +272,6 @@ static int rtp_data_cb(struct bsc_fd *fd, unsigned int what) else ++endp->net_end.packets; - /* For loop toggle the destination and then dispatch. */ - if (cfg->audio_loop) - dest = !dest; - - /* Loop based on the conn_mode, maybe undoing the above */ - if (endp->conn_mode == MGCP_CONN_LOOPBACK) - dest = !dest; - return send_to(endp, dest, proto == PROTO_RTP, &addr, &buf[0], rc); } -- cgit v1.2.3