[Asterisk-code-review] chan_sip: TCP/TLS client without server. (asterisk[master])

Alexander Traud asteriskteam at digium.com
Wed Apr 1 11:54:23 CDT 2020


Alexander Traud has uploaded this change for review. ( https://gerrit.asterisk.org/c/asterisk/+/14040 )


Change subject: chan_sip: TCP/TLS client without server.
......................................................................

chan_sip: TCP/TLS client without server.

ASTERISK-28798

Change-Id: I387ca5cb6a65f1eb675a29c5e41df8ec6c242ab2
---
M channels/chan_sip.c
1 file changed, 29 insertions(+), 18 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/40/14040/1

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index fb3581e..078cf10 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3934,23 +3934,27 @@
 		/* no remapping, but we bind to a specific address, so use it. */
 		switch (p->socket.type) {
 		case AST_TRANSPORT_TCP:
-			if (!ast_sockaddr_is_any(&sip_tcp_desc.local_address)) {
-				ast_sockaddr_copy(us,
-						  &sip_tcp_desc.local_address);
-			} else {
-				ast_sockaddr_set_port(us,
-						      ast_sockaddr_port(&sip_tcp_desc.local_address));
-			}
-			break;
+			if (!ast_sockaddr_isnull(&sip_tcp_desc.local_address)) {
+				if (!ast_sockaddr_is_any(&sip_tcp_desc.local_address)) {
+					ast_sockaddr_copy(us,
+							  &sip_tcp_desc.local_address);
+				} else {
+					ast_sockaddr_set_port(us,
+					  ast_sockaddr_port(&sip_tcp_desc.local_address));
+				}
+				break;
+			} /* fall through on purpose */
 		case AST_TRANSPORT_TLS:
-			if (!ast_sockaddr_is_any(&sip_tls_desc.local_address)) {
-				ast_sockaddr_copy(us,
-						  &sip_tls_desc.local_address);
-			} else {
-				ast_sockaddr_set_port(us,
-						      ast_sockaddr_port(&sip_tls_desc.local_address));
-			}
-			break;
+			if (!ast_sockaddr_isnull(&sip_tls_desc.local_address)) {
+				if (!ast_sockaddr_is_any(&sip_tls_desc.local_address)) {
+					ast_sockaddr_copy(us,
+							  &sip_tls_desc.local_address);
+				} else {
+					ast_sockaddr_set_port(us,
+					  ast_sockaddr_port(&sip_tls_desc.local_address));
+				}
+				break;
+			} /* fall through on purpose */
 		case AST_TRANSPORT_UDP:
 			/* fall through on purpose */
 		default:
@@ -16249,8 +16253,15 @@
 		/* Set transport and port so the correct contact is built */
 		set_socket_transport(&p->socket, r->transport);
 		if (r->transport == AST_TRANSPORT_TLS || r->transport == AST_TRANSPORT_TCP) {
-			p->socket.port =
-			    htons(ast_sockaddr_port(&sip_tcp_desc.local_address));
+			if (ast_sockaddr_isnull(&sip_tcp_desc.local_address)) {
+				ast_log(LOG_ERROR,
+				    "TCP/TLS clients without server were not tested.\n");
+				ast_log(LOG_ERROR,
+				    "Please, follow-up and report at issue 28798.\n");
+			} else {
+				p->socket.port =
+				    htons(ast_sockaddr_port(&sip_tcp_desc.local_address));
+			}
 		}
 
 		/*

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/14040
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Change-Id: I387ca5cb6a65f1eb675a29c5e41df8ec6c242ab2
Gerrit-Change-Number: 14040
Gerrit-PatchSet: 1
Gerrit-Owner: Alexander Traud <pabstraud at compuserve.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20200401/eac3bec9/attachment.html>


More information about the asterisk-code-review mailing list