Don't set the address with NAT mode if we haven't programmed an address
authorMark Spencer <markster@digium.com>
Thu, 15 Apr 2004 20:12:46 +0000 (20:12 +0000)
committerMark Spencer <markster@digium.com>
Thu, 15 Apr 2004 20:12:46 +0000 (20:12 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2697 65c4cc65-6c06-0410-ace0-fbb531ad65f3

rtp.c

diff --git a/rtp.c b/rtp.c
index 9e6395b..a6c6300 100755 (executable)
--- a/rtp.c
+++ b/rtp.c
@@ -413,6 +413,12 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
                ast_log(LOG_WARNING, "RTP Read too short\n");
                return &null_frame;
        }
+
+       /* Ignore if the other side hasn't been given an address
+          yet.  */
+       if (!rtp->them.sin_addr.s_addr || !rtp->them.sin_port)
+               return &null_frame;
+
        if (rtp->nat) {
                /* Send to whoever sent to us */
                if ((rtp->them.sin_addr.s_addr != sin.sin_addr.s_addr) ||
@@ -421,10 +427,6 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
                        ast_log(LOG_DEBUG, "RTP NAT: Using address %s:%d\n", inet_ntoa(rtp->them.sin_addr), ntohs(rtp->them.sin_port));
                }
        }
-       /* Ignore if the other side hasn't been given an address
-          yet.  */
-       if (!rtp->them.sin_addr.s_addr || !rtp->them.sin_port)
-               return &null_frame;
 
        /* Get fields */
        seqno = ntohl(rtpheader[0]);