]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 662161: enhance testserver.pl to deal with missing support for HTTPS. r=gerv...
authorMatt Selsky <selsky@columbia.edu>
Fri, 23 Jan 2015 11:11:13 +0000 (11:11 +0000)
committerGervase Markham <gerv@gerv.net>
Fri, 23 Jan 2015 11:11:13 +0000 (11:11 +0000)
testserver.pl

index d827c80ea2ac2f159d7873bd151e9952a016a6fe..7ee7fe9290da2ab43b01f666da409c882c68696a 100755 (executable)
@@ -26,6 +26,8 @@ my $datadir = bz_locations()->{'datadir'};
 
 eval "require LWP; require LWP::UserAgent;";
 my $lwp = $@ ? 0 : 1;
+eval "require LWP::Protocol::https;";
+my $lwpssl = $@ ? 0 : 1;
 
 if ((@ARGV != 1) || ($ARGV[0] !~ /^https?:/i))
 {
@@ -212,12 +214,16 @@ sub fetch {
     my $url = shift;
     my $rtn;
     if ($lwp) {
-        my $req = HTTP::Request->new(GET => $url);
-        my $ua = LWP::UserAgent->new;
-        my $res = $ua->request($req);
-        $rtn = ($res->is_success ? $res->content : undef);
+        if ($url =~ /^https:/i && !$lwpssl) {
+            die("You need LWP::Protocol::https installed to use https with testserver.pl");
+        } else {
+            my $req = HTTP::Request->new(GET => $url);
+            my $ua = LWP::UserAgent->new;
+            my $res = $ua->request($req);
+            $rtn = ($res->is_success ? $res->content : undef);
+        }
     } elsif ($url =~ /^https:/i) {
-        die("You need LWP installed to use https with testserver.pl");
+        die("You need LWP (and LWP::Protocol::https, for LWP 6.02 or newer) installed to use https with testserver.pl");
     } else {
         my($host, $port, $file) = ('', 80, '');
         if ($url =~ m#^http://([^:]+):(\d+)(/.*)#i) {