version 1.1328, 2019/05/02 02:12:18
|
version 1.1329, 2019/05/02 23:09:38
|
Line 18193 sub shorten_symbs {
|
Line 18193 sub shorten_symbs {
|
} |
} |
|
|
sub is_nonframeable { |
sub is_nonframeable { |
my ($url,$absolute,$hostname,$ip) = @_; |
my ($url,$absolute,$hostname,$ip,$nocache) = @_; |
|
my ($remprotocol,$remhost) = ($url =~ m{^(https?)\://(([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,})}i); |
|
return if (($remprotocol eq '') || ($remhost eq '')); |
|
|
|
$remprotocol = lc($remprotocol); |
|
$remhost = lc($remhost); |
|
my $remport = 80; |
|
if ($remprotocol eq 'https') { |
|
$remport = 443; |
|
} |
|
my ($result,$cached) = &Apache::lonnet::is_cached_new('exturlnoiframe',$remhost.':'.$remport); |
|
if ($cached) { |
|
unless ($nocache) { |
|
if ($result) { |
|
return 1; |
|
} else { |
|
return 0; |
|
} |
|
} |
|
} |
my $uselink; |
my $uselink; |
my $request = new HTTP::Request('HEAD',$url); |
my $request = new HTTP::Request('HEAD',$url); |
my $response = &LONCAPA::LWPReq::makerequest('',$request,'','',5); |
my $response = &LONCAPA::LWPReq::makerequest('',$request,'','',5); |
Line 18203 sub is_nonframeable {
|
Line 18222 sub is_nonframeable {
|
$secpolicy =~ s/^\s+|\s+$//g; |
$secpolicy =~ s/^\s+|\s+$//g; |
$xframeop =~ s/^\s+|\s+$//g; |
$xframeop =~ s/^\s+|\s+$//g; |
if (($secpolicy ne '') || ($xframeop ne '')) { |
if (($secpolicy ne '') || ($xframeop ne '')) { |
my ($remotehost) = ($url =~ m{^(https?\://[^/?#]+)}); |
my $remotehost = $remprotocol.'://'.$remhost; |
$remotehost = lc($remotehost); |
|
my ($origin,$protocol,$port); |
my ($origin,$protocol,$port); |
if ($ENV{'SERVER_PORT'} =~/^\d+$/) { |
if ($ENV{'SERVER_PORT'} =~/^\d+$/) { |
$port = $ENV{'SERVER_PORT'}; |
$port = $ENV{'SERVER_PORT'}; |
Line 18302 sub is_nonframeable {
|
Line 18320 sub is_nonframeable {
|
} |
} |
} |
} |
} |
} |
|
if ($nocache) { |
|
if ($cached) { |
|
my $devalidate; |
|
if ($uselink && !$result) { |
|
$devalidate = 1; |
|
} elsif (!$uselink && $result) { |
|
$devalidate = 1; |
|
} |
|
if ($devalidate) { |
|
&Apache::lonnet::devalidate_cache_new('noiframe',$remhost.':'.$remport); |
|
} |
|
} |
|
} else { |
|
if ($uselink) { |
|
$result = 1; |
|
} else { |
|
$result = 0; |
|
} |
|
&Apache::lonnet::do_cache_new('noiframe',$remhost.':'.$remport,$result,3600); |
|
} |
return $uselink; |
return $uselink; |
} |
} |
|
|
|
|
1; |
1; |
__END__; |
__END__; |
|
|