The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package main;

use 5.006002;

use strict;
use warnings;

use Test::More 0.88;	# Because of done_testing();

use LWP::UserAgent;

note <<'EOD';
This test checks whether Mike McCants' certificate is accepted by Perl.
There will be failures elsewhere if it is not, but I want to retain the
test so that if the problem ever arises again I can invert the test and
be notified when the problem clears up.
EOD

=begin comment

note <<'EOD';
The point of this test is to let me know when Perl starts to recognize
the cert returned by Mike McCants' web site, so I can change the default
for the verify_hostname attribute back to true.
EOD

=end comment

=cut

my $ua = LWP::UserAgent->new(
    ssl_opts	=> { verify_hostname => 1 },
);

my $resp = $ua->get(
    'http://www.prismnet.com/~mmccants/tles/iridium.html',
);

ok !got_expected_response( $resp ),
    q{Perl recognizes Mike McCants' certificate}
    or diag $resp->status_line(), <<'EOD';

You need to change the default for verify_hostname to false.
EOD

=begin comment

ok got_expected_response( $resp ),
    q{Perl does not recognize Mike McCants' certificate}
    or diag $resp->status_line(), <<'EOD';

You might be able to change the default for verify_hostname
back to true.
EOD

=end comment

=cut

done_testing;

sub got_expected_response {
    my ( $resp ) = @_;
    $resp->is_success()
	and return 0;
    500 == $resp->code()
	or return 0;
    return $resp->status_line() =~ m/certificate verify failed/sm;
}

1;

# ex: set textwidth=72 :