[svn-commits] oej: branch oej/pgtips-srv-and-outbound-stuff-1.8 r421666 - /team/oej/pgtips-...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Aug 21 04:58:18 CDT 2014


Author: oej
Date: Thu Aug 21 04:58:12 2014
New Revision: 421666

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=421666
Log:
Just moving this around

Modified:
    team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c

Modified: team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c?view=diff&rev=421666&r1=421665&r2=421666
==============================================================================
--- team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c (original)
+++ team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c Thu Aug 21 04:58:12 2014
@@ -13903,24 +13903,6 @@
 
 		p->socket.type = r->transport;
 
-		/* Use port number specified if no SRV record was found */
-		if (!ast_sockaddr_isnull(&r->us)) {
-			if (!ast_sockaddr_port(&r->us) && r->portno) {
-				ast_debug(3, "  --- Changing port to %d from %d \n", r->portno, ast_sockaddr_port(&r->us));
-				ast_sockaddr_set_port(&r->us, r->portno);
-			}
-
-			/* It is possible that DNS was unavailable at the time the peer was created.
-			 * Here, if we've updated the address in the registry via manually calling
-			 * ast_dnsmgr_lookup_cb() above, then we call the same function that dnsmgr would
-			 * call if it was updating a peer's address */
-			if ((peer = find_peer(S_OR(r->peername, r->hostname), NULL, TRUE, FINDPEERS, FALSE, 0))) {
-				if (ast_sockaddr_cmp(&peer->addr, &r->us)) {
-					on_dns_update_peer(&peer->addr, &r->us, peer);
-				}
-				peer = unref_peer(peer, "unref after find_peer");
-			}
-		}
 
 		/* Set transport and port so the correct contact is built */
 		set_socket_transport(&p->socket, r->transport);
@@ -13928,13 +13910,9 @@
 			p->socket.port =
 			    htons(ast_sockaddr_port(&sip_tcp_desc.local_address));
 		}
-		if (!ast_sockaddr_port(&r->us) && !r->dnsmgr && r->portno) {
-			ast_sockaddr_set_port(&p->sa, r->portno);
-			ast_sockaddr_set_port(&p->recv, r->portno);
-			ast_debug(2, "Confusing code set port to %d\n", r->portno);
-		}
 
 		/* Find address to hostname */
+		ast_debug(3, "  --- Going to find address for %s\n", S_OR(r->peername, r->hostname));
 		if (create_addr(p, S_OR(r->peername, r->hostname), &r->us, 0)) {
 			/* we have what we hope is a temporary network error,
 			 * probably DNS.  We need to reschedule a registration try */
@@ -13953,7 +13931,32 @@
 			r->regattempts++;
 			return 0;
 		}
+
+		if (!ast_sockaddr_port(&r->us) && !r->dnsmgr && r->portno) {
+			ast_sockaddr_set_port(&p->sa, r->portno);
+			ast_sockaddr_set_port(&p->recv, r->portno);
+			ast_debug(2, "Confusing code set port to %d\n", r->portno);
+		}
 		ast_debug(3, "  --- 2. Address (p->sa) set to %s port %d \n", ast_sockaddr_stringify_host(&p->sa), ast_sockaddr_port(&p->sa));
+
+		/* Use port number specified if no SRV record was found */
+		if (!ast_sockaddr_isnull(&r->us)) {
+			if (!ast_sockaddr_port(&r->us) && r->portno) {
+				ast_debug(3, "  --- Changing port to %d from %d \n", r->portno, ast_sockaddr_port(&r->us));
+				ast_sockaddr_set_port(&r->us, r->portno);
+			}
+
+			/* It is possible that DNS was unavailable at the time the peer was created.
+			 * Here, if we've updated the address in the registry via manually calling
+			 * ast_dnsmgr_lookup_cb() above, then we call the same function that dnsmgr would
+			 * call if it was updating a peer's address */
+			if ((peer = find_peer(S_OR(r->peername, r->hostname), NULL, TRUE, FINDPEERS, FALSE, 0))) {
+				if (ast_sockaddr_cmp(&peer->addr, &r->us)) {
+					on_dns_update_peer(&peer->addr, &r->us, peer);
+				}
+				peer = unref_peer(peer, "unref after find_peer");
+			}
+		}
 
 		/* Copy back Call-ID in case create_addr changed it */
 		ast_string_field_set(r, callid, p->callid);




More information about the svn-commits mailing list