[svn-commits] dvossel: branch 1.6.1 r221702 - in /branches/1.6.1: ./ channels/chan_sip.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Oct 1 14:52:29 CDT 2009
Author: dvossel
Date: Thu Oct 1 14:52:24 2009
New Revision: 221702
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=221702
Log:
Merged revisions 221697 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
........
r221697 | dvossel | 2009-10-01 14:33:33 -0500 (Thu, 01 Oct 2009) | 9 lines
outbound tls connections were not defaulting to port 5061
(closes issue #15854)
Reported by: dvossel
Patches:
sip_port_config_trunk.diff uploaded by dvossel (license 671)
Tested by: dvossel
........
Modified:
branches/1.6.1/ (props changed)
branches/1.6.1/channels/chan_sip.c
Propchange: branches/1.6.1/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.1/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.1/channels/chan_sip.c?view=diff&rev=221702&r1=221701&r2=221702
==============================================================================
--- branches/1.6.1/channels/chan_sip.c (original)
+++ branches/1.6.1/channels/chan_sip.c Thu Oct 1 14:52:24 2009
@@ -22105,6 +22105,7 @@
struct ast_ha *oldha = NULL;
int found = 0;
int firstpass = 1;
+ uint16_t port = 0;
int format = 0; /* Ama flags */
time_t regseconds = 0;
struct ast_flags peerflags[2] = {{(0)}};
@@ -22267,17 +22268,15 @@
/* Initialize stuff if this is a new peer, or if it used to
* not be dynamic before the reload. */
memset(&peer->addr.sin_addr, 0, 4);
- if (peer->addr.sin_port) {
- /* If we've already got a port, make it the default rather than absolute */
- peer->defaddr.sin_port = peer->addr.sin_port;
- peer->addr.sin_port = 0;
- }
+ peer->addr.sin_port = 0;
}
peer->host_dynamic = TRUE;
} else {
/* Non-dynamic. Make sure we become that way if we're not */
AST_SCHED_DEL_UNREF(sched, peer->expire,
unref_peer(peer, "removing register expire ref"));
+ /* the port will either be set to a default value or a config specified value once all option parsing is complete */
+ peer->addr.sin_port = 0;
peer->host_dynamic = FALSE;
srvlookup = v->value;
if (global_dynamic_exclude_static) {
@@ -22307,10 +22306,8 @@
}
} else if (!strcasecmp(v->name, "port")) {
peer->portinuri = 1;
- if (!realtime && peer->host_dynamic) {
- peer->defaddr.sin_port = htons(atoi(v->value));
- } else {
- peer->addr.sin_port = htons(atoi(v->value));
+ if (!(port = port_str2int(v->value, 0))) {
+ ast_log(LOG_WARNING, "Invalid peer port configuration at line %d : %s\n", v->lineno, v->value);
}
} else if (!strcasecmp(v->name, "callingpres")) {
peer->callingpres = ast_parse_caller_presentation(v->value);
@@ -22521,6 +22518,12 @@
set_socket_transport(&peer->socket, peer->default_outbound_transport);
}
+ if (port && !realtime && peer->host_dynamic) {
+ peer->defaddr.sin_port = htons(port);
+ } else if (port) {
+ peer->addr.sin_port = htons(port);
+ }
+
if (ast_str_strlen(fullcontact)) {
ast_copy_string(peer->fullcontact, fullcontact->str, sizeof(peer->fullcontact));
peer->rt_fromcontact = TRUE;
@@ -22561,7 +22564,9 @@
if (!peer->addr.sin_port) {
peer->addr.sin_port = htons(((peer->socket.type & SIP_TRANSPORT_TLS) ? STANDARD_TLS_PORT : STANDARD_SIP_PORT));
}
-
+ if (!peer->defaddr.sin_port) {
+ peer->defaddr.sin_port = htons(((peer->socket.type & SIP_TRANSPORT_TLS) ? STANDARD_TLS_PORT : STANDARD_SIP_PORT));
+ }
if (!peer->socket.port) {
peer->socket.port = htons(((peer->socket.type & SIP_TRANSPORT_TLS) ? STANDARD_TLS_PORT : STANDARD_SIP_PORT));
}
More information about the svn-commits
mailing list