mgcp: Move the loopback code into the common send as well.

This commit is contained in:
Holger Hans Peter Freyther
2010-08-05 06:31:58 +08:00
parent 5bf8f95701
commit e320fc115a

View File

@@ -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);
}