From: Alexander Traud Date: Sun, 8 Oct 2017 14:11:10 +0000 (+0200) Subject: tcptls: Do not re-bind to wildcard on client creation. X-Git-Tag: 14.7.0-rc1~16^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20fd595890a5c02d5656e4627a2fd6e36986a84a;p=thirdparty%2Fasterisk.git tcptls: Do not re-bind to wildcard on client creation. Since ASTERISK-26922, this issue affected only those chan_sip which were * enabled for dual-stack (bindaddr=::), and * enabled for TCP (tcpenable=yes) and/or TLS (tlsenable=yes), and * tried to register and/or invite a IPv4-only service, * via TCP and/or TLS. Now, ast_tcptls_client_create does not re-bind to [::] anymore. ASTERISK-27324 #close Change-Id: I4b242837bdeb1ec7130dc82505c6180a946fd9b5 --- diff --git a/main/tcptls.c b/main/tcptls.c index 0d172f1494..e237dc7bb5 100644 --- a/main/tcptls.c +++ b/main/tcptls.c @@ -1147,7 +1147,8 @@ struct ast_tcptls_session_instance *ast_tcptls_client_create(struct ast_tcptls_s /* if a local address was specified, bind to it so the connection will originate from the desired address */ - if (!ast_sockaddr_isnull(&desc->local_address)) { + if (!ast_sockaddr_isnull(&desc->local_address) && + !ast_sockaddr_is_any(&desc->local_address)) { setsockopt(desc->accept_fd, SOL_SOCKET, SO_REUSEADDR, &x, sizeof(x)); if (ast_bind(desc->accept_fd, &desc->local_address)) { ast_log(LOG_ERROR, "Unable to bind %s to %s: %s\n",