]> sjero.net Git - wget/blobdiff - tests/Test-proxied-https-auth.px
Fix build when libpsl is not available
[wget] / tests / Test-proxied-https-auth.px
index a2efe5ebcb5b90a82d1733c00965c4bf177127ff..1de535786321ed379ddc78f57a80f53e710b490e 100755 (executable)
@@ -1,16 +1,18 @@
-#!/usr/bin/perl
-use warnings;
+#!/usr/bin/env perl
+
 use strict;
+use warnings;
 
+use WgetFeature qw(https);
 use WgetTest;  # For $WGETPATH.
 
-# Have we even built an HTTPS-supporting Wget?
-{
-    my @version_lines = `${WgetTest::WGETPATH} --version`;
-    unless (grep /\+(openssl|gnutls)/, @version_lines) {
-        print "Not running test: Wget under test doesn't support HTTPS.\n";
-        exit 0;
-    }
+my $cert_path;
+my $key_path;
+
+if (@ARGV) {
+    my $top_srcdir = shift @ARGV;
+    $key_path = "$top_srcdir/tests/certs/server-key.pem";
+    $cert_path = "$top_srcdir/tests/certs/server-cert.pem";
 }
 
 use HTTP::Daemon;
@@ -54,8 +56,16 @@ sub do_server {
         $rspn = HTTP::Response->new(200, 'OK');
         $conn->send_response($rspn);
 
-        $conn = IO::Socket::SSL->new_from_fd($conn->fileno, SSL_server => 1,
-            SSL_passwd_cb => sub { return "Hello"; })
+        my %options = (
+            SSL_server => 1,
+            SSL_passwd_cb => sub { return "Hello"; });
+
+        $options{SSL_cert_file} = $cert_path if ($cert_path);
+        $options{SSL_key_file} = $key_path if ($key_path);
+
+        my @options = %options;
+
+        $conn = IO::Socket::SSL->new_from_fd($conn->fileno, @options)
             or die "Couldn't initiate SSL";
 
         $rqst = &get_request($conn)