BBCode-Parser
view release on metacpan or search on metacpan
lib/BBCode/Util.pm view on Meta::CPAN
'mailto' => 1,
'data' => 0,
'javascript' => 0,
);
sub _url_parse($$) {
my($str,$schemes) = @_;
my($scheme,$opaque,$fragment) = _url_parse_opaque($str);
return undef unless defined $scheme;
return undef unless exists $urltype{$scheme};
if($urltype{$scheme} > 0) {
my($rest,$query) = _url_parse_query($opaque);
if($urltype{$scheme} > 1) {
my($auth,$path) = _url_parse_path($rest);
return undef unless defined $path;
lib/BBCode/Util.pm view on Meta::CPAN
}
$auth .= $host;
$auth .= ':'.$port if defined $port;
}
$rest = join '', map { defined $_ ? $_ : '' } ('//',$auth,$path);
}
$opaque = join '', map { defined $_ ? $_ : '' } ($rest,$query);
}
$str = $scheme.':'.$opaque.(defined $fragment ? $fragment : '');
my $url = URI->new_abs($str, 'http://sanity.check.example.com/')->canonical;
return undef unless defined $url->scheme;
return undef unless exists $$schemes{$url->scheme};
return undef if $url->as_string =~ /\bsanity\.check\.example\.com\b/i;
return undef if $url->can('userinfo') and defined $url->userinfo;
return undef if $url->can('host') and not defined $url->host;
if($url->scheme eq 'mailto') {
my %unsafe = $url->headers;
my %safe;
( run in 0.729 second using v1.01-cache-2.11-cpan-364913b4093 )