Diff for /loncom/interface/loncommon.pm between versions 1.1328 and 1.1329

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__;
   

Removed from v.1.1328  
changed lines
  Added in v.1.1329


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>