Diff for /loncom/cgi/ping.pl between versions 1.3 and 1.9

version 1.3, 2002/09/09 14:18:56 version 1.9, 2011/10/17 17:23:25
Line 1 Line 1
 #!/usr/bin/perl  #!/usr/bin/perl
   
 # The LearningOnline Network with CAPA  
 # ping cgi-script  # ping cgi-script
   # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
   
   use strict;
 $|=1;  $|=1;
   
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA::Configuration;  use Apache::lonnet;
   use LONCAPA::loncgi;
 use IO::File;  use LONCAPA::lonauthcgi;
 use IO::Socket;  
   print("Content-type: text/plain\n\n");
 # -------------------------------------------------- Non-critical communication  
 sub reply {  &main();
     my ($cmd,$server)=@_;  
     my $peerfile="$perlvar{'lonSockDir'}/$server";  sub main {
     my $client=IO::Socket::UNIX->new(Peer    =>"$peerfile",      my $remote_ip = $ENV{'REMOTE_ADDR'};
                                      Type    => SOCK_STREAM,      my $allowed;
                                      Timeout => 10)      my @hosts = &Apache::lonnet::get_hosts_from_ip($remote_ip);
        or return "con_lost";      if (@hosts > 0) {
     print $client "$cmd\n";          $allowed = 1;
     my $answer=<$client>;      } elsif (&LONCAPA::lonauthcgi::check_ipbased_access('ping',$remote_ip)) {
     chomp($answer);          $allowed = 1;
     if (!$answer) { $answer="con_lost"; }      } elsif (&LONCAPA::loncgi::check_cookie_and_load_env()) {
     return $answer;          if (&LONCAPA::lonauthcgi::can_view('ping')) {
               $allowed = 1;
           }
       }
       if ($allowed) {
           my $testhost=$ENV{'QUERY_STRING'};
           $testhost=~s/\W//g;
           if (&Apache::lonnet::hostname($testhost) ne '') {
               print &Apache::lonnet::reply('ping',$testhost)."\n";
           } else {
               print 'unknown_host';
           }
       } else {
           print 'forbidden';
       }
       return;
 }  }
   
   
 # --------------------- Read loncapa.conf (and by default loncapa_apache.conf).  
 my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf');  
 my %perlvar=%{$perlvarref};  
 undef $perlvarref; # remove since sensitive and not needed  
 delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed  
 delete $perlvar{'lonSqlAccess'}; # remove since sensitive and not needed  
   
 $testhost=$ENV{'QUERY_STRING'};  
 $testhost=~s/\W//g;  
   
 print "Content-type: text/plain\n\n".  
       &reply('ping',$testhost)."\n";  

Removed from v.1.3  
changed lines
  Added in v.1.9


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