chan_sip: Only when different, add TCP|TLS in autodomain (SIP Domain Support).

When sip.conf contained tcpenable=yes and autodomain=yes, the TCP domain was
added in any case, because of a local Boolean-negation error of the return value
of ast_sockaddr_cmp. After fixing this error for TCP and TLS, the TLS domain was
still always added with tlsenable=yes, because the domains were not compared
just on the address but also on the port – and TLS is always on a different port
than UDP/TCP.

ASTERISK-27106

Change-Id: I14fe9e319e238320b094016980445ef3a5b3337c
changes/56/5956/1
Alexander Traud 9 years ago
parent 067410a445
commit 39d2ebbf56

@ -33171,15 +33171,15 @@ static int reload_config(enum channelreloadreason reason)
/* If TCP is running on a different IP than UDP, then add it too */
if (!ast_sockaddr_isnull(&sip_tcp_desc.local_address) &&
!ast_sockaddr_cmp(&bindaddr, &sip_tcp_desc.local_address)) {
ast_sockaddr_cmp_addr(&bindaddr, &sip_tcp_desc.local_address)) {
add_sip_domain(ast_sockaddr_stringify_addr(&sip_tcp_desc.local_address),
SIP_DOMAIN_AUTO, NULL);
}
/* If TLS is running on a different IP than UDP and TCP, then add that too */
if (!ast_sockaddr_isnull(&sip_tls_desc.local_address) &&
!ast_sockaddr_cmp(&bindaddr, &sip_tls_desc.local_address) &&
!ast_sockaddr_cmp(&sip_tcp_desc.local_address,
ast_sockaddr_cmp_addr(&bindaddr, &sip_tls_desc.local_address) &&
ast_sockaddr_cmp_addr(&sip_tcp_desc.local_address,
&sip_tls_desc.local_address)) {
add_sip_domain(ast_sockaddr_stringify_addr(&sip_tcp_desc.local_address),
SIP_DOMAIN_AUTO, NULL);

Loading…
Cancel
Save