Annotation of loncom/cgi/ping.pl, revision 1.9

1.1       www         1: #!/usr/bin/perl
                      2: # ping cgi-script
1.9     ! raeburn     3: # $Id: ping.pl,v 1.8 2008/12/25 01:56:03 raeburn Exp $
1.5       albertel    4: #
                      5: # Copyright Michigan State University Board of Trustees
                      6: #
                      7: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
                      8: #
                      9: # LON-CAPA is free software; you can redistribute it and/or modify
                     10: # it under the terms of the GNU General Public License as published by
                     11: # the Free Software Foundation; either version 2 of the License, or
                     12: # (at your option) any later version.
                     13: #
                     14: # LON-CAPA is distributed in the hope that it will be useful,
                     15: # but WITHOUT ANY WARRANTY; without even the implied warranty of
                     16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     17: # GNU General Public License for more details.
                     18: #
                     19: # You should have received a copy of the GNU General Public License
                     20: # along with LON-CAPA; if not, write to the Free Software
                     21: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
                     22: #
                     23: # /home/httpd/html/adm/gpl.txt
                     24: #
                     25: # http://www.lon-capa.org/
                     26: #
1.1       www        27: 
1.6       albertel   28: use strict;
1.1       www        29: $|=1;
                     30: 
1.2       harris41   31: use lib '/home/httpd/lib/perl/';
1.6       albertel   32: use Apache::lonnet;
1.7       raeburn    33: use LONCAPA::loncgi;
1.8       raeburn    34: use LONCAPA::lonauthcgi;
1.1       www        35: 
1.7       raeburn    36: print("Content-type: text/plain\n\n");
1.1       www        37: 
1.7       raeburn    38: &main();
                     39: 
                     40: sub main {
1.9     ! raeburn    41:     my $remote_ip = $ENV{'REMOTE_ADDR'};
        !            42:     my $allowed;
        !            43:     my @hosts = &Apache::lonnet::get_hosts_from_ip($remote_ip);
        !            44:     if (@hosts > 0) {
        !            45:         $allowed = 1;
        !            46:     } elsif (&LONCAPA::lonauthcgi::check_ipbased_access('ping',$remote_ip)) {
        !            47:         $allowed = 1;
        !            48:     } elsif (&LONCAPA::loncgi::check_cookie_and_load_env()) {
        !            49:         if (&LONCAPA::lonauthcgi::can_view('ping')) {
        !            50:             $allowed = 1;
1.7       raeburn    51:         }
1.9     ! raeburn    52:     }
        !            53:     if ($allowed) {
        !            54:         my $testhost=$ENV{'QUERY_STRING'};
        !            55:         $testhost=~s/\W//g;
        !            56:         if (&Apache::lonnet::hostname($testhost) ne '') {
        !            57:             print &Apache::lonnet::reply('ping',$testhost)."\n";
        !            58:         } else {
        !            59:             print 'unknown_host';
1.7       raeburn    60:         }
1.9     ! raeburn    61:     } else {
        !            62:         print 'forbidden';
1.7       raeburn    63:     }
                     64:     return;
                     65: }

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