From 9345e477eccc933af13d7181cdf1a83c6a3deaa3 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 27 Mar 2008 05:23:41 +0000 Subject: Bug 358588: The sslbase's port is harcoded, but shouldn't (allow the port to be specified with the parameter) - Patch by Frédéric Buclin r=glob a=LpSolit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Config/Common.pm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'Bugzilla/Config') diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm index f5f5a3fb2..e6f0398e3 100644 --- a/Bugzilla/Config/Common.pm +++ b/Bugzilla/Config/Common.pm @@ -101,17 +101,21 @@ sub check_sslbase { return "must be a legal URL, that starts with https and ends with a slash."; } my $host = $1; - if ($host =~ /:\d+$/) { - return "must not contain a port."; + # Fall back to port 443 if for some reason getservbyname() fails. + my $port = getservbyname('https', 'tcp') || 443; + if ($host =~ /^(.+):(\d+)$/) { + $host = $1; + $port = $2; } local *SOCK; my $proto = getprotobyname('tcp'); socket(SOCK, PF_INET, SOCK_STREAM, $proto); - my $sin = sockaddr_in(443, inet_aton($host)); + my $iaddr = inet_aton($host) || return "The host $host cannot be resolved"; + my $sin = sockaddr_in($port, $iaddr); if (!connect(SOCK, $sin)) { - return "Failed to connect to " . html_quote($host) . - ":443, unable to enable SSL."; + return "Failed to connect to $host:$port; unable to enable SSL"; } + close(SOCK); } return ""; } -- cgit v1.2.3-24-g4f1b