Mail-SpamAssassin

 view release on metacpan or  search on metacpan

sa-update.raw  view on Meta::CPAN


##############################################################################

sub check_mirror_af {
    my ($mirror) = @_;
    # RFC 3986:  scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
    $mirror =~ s{^([a-z][a-z0-9.+-]*)://}{}si;  # strip scheme like http://
    my $scheme = lc($1);
    # No DNS check needed for proxied connections (caveat: no_proxy is not checked)
    my $http_proxy = (defined $ENV{"http_proxy"} && $ENV{"http_proxy"} =~ /\S/) ||
                     (defined $ENV{"HTTP_PROXY"} && $ENV{"HTTP_PROXY"} =~ /\S/);
    my $https_proxy = (defined $ENV{"https_proxy"} && $ENV{"https_proxy"} =~ /\S/) ||
                      (defined $ENV{"HTTPS_PROXY"} && $ENV{"HTTPS_PROXY"} =~ /\S/);
    return 1 if $scheme eq "http" && $http_proxy;
    return 1 if $scheme eq "https" && $https_proxy;
    # No DNS check needed for IPv4 or IPv6 address literal
    return 1 if $use_inet4 && $mirror =~ m{^\d+\.\d+\.\d+\.\d+(?:[:/]|$)};
    return 1 if $use_inet6 && $mirror =~ m{^\[};
    $mirror =~ s{[:/].*}{}s;  # strip all starting from :port or /path
    return 1 if $use_inet4 && do_dns_query($mirror, "A");
    return 1 if $use_inet6 && do_dns_query($mirror, "AAAA");



( run in 0.761 second using v1.01-cache-2.11-cpan-71847e10f99 )