From 46e57a303c9370a18d7ce33378f7ff1815034031 Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Thu, 27 Nov 2014 16:07:23 +0000 Subject: [PATCH] [PASSED QA] 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 --- 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 9a281dd..a584469 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})); -- 1.9.1