From bf49a4995ae1a4d4dc95ddecf75cc3b3d08c46e2 Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Thu, 27 Nov 2014 16:07:23 +0000 Subject: [PATCH] Bug 13252 Allow for IPv6 formatted addresses in Port definition The SIP config has allowed you to specify an interface ip as part of the listeners/service/port attributei e. g. as port="127.0.0.1:6001/tcp" with IPv6 the equivalent would normally be as port="[::1]:5001/tcp" However in this case incoming connections will get rejected because Configuration constructs a string without the brackets This patch makes tests both formats on incoming connections so that they are accepted as they were previously In future the best course is not to include a port identifier in the port definition then if the server has ipv6 it will bind to all interfaces and accept both IPv4 and IPv6 traffic Signed-off-by: Katrin Fischer Signed-off-by: Chris Cormack --- C4/SIP/Sip/Configuration.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/SIP/Sip/Configuration.pm b/C4/SIP/Sip/Configuration.pm index 9a281dd87a..a58446912a 100644 --- a/C4/SIP/Sip/Configuration.pm +++ b/C4/SIP/Sip/Configuration.pm @@ -71,7 +71,7 @@ sub accounts { sub find_service { my ($self, $sockaddr, $port, $proto) = @_; my $portstr; - foreach my $addr ('', '*:', "$sockaddr:") { + foreach my $addr ('', '*:', "$sockaddr:", "[$sockaddr]:") { $portstr = sprintf("%s%s/%s", $addr, $port, lc $proto); Sys::Syslog::syslog("LOG_DEBUG", "Configuration::find_service: Trying $portstr"); last if (exists(($self->{listeners})->{$portstr})); -- 2.39.5