From: lpsolit%gmail.com <> Date: Thu, 27 Mar 2008 05:23:41 +0000 (+0000) Subject: Bug 358588: The sslbase's port is harcoded, but shouldn't (allow the port to be speci... X-Git-Tag: bugzilla-3.1.3~264 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9345e477eccc933af13d7181cdf1a83c6a3deaa3;p=thirdparty%2Fbugzilla.git 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 --- diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm index f5f5a3fb26..e6f0398e31 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 ""; }