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>