File:
[LON-CAPA] /
loncom /
cgi /
ping.pl
Revision
1.9:
download - view:
text,
annotated -
select for diffs
Mon Oct 17 17:23:25 2011 UTC (13 years, 2 months ago) by
raeburn
Branches:
MAIN
CVS tags:
version_2_12_X,
version_2_11_X,
version_2_11_5_msu,
version_2_11_5,
version_2_11_4_uiuc,
version_2_11_4_msu,
version_2_11_4,
version_2_11_3_uiuc,
version_2_11_3_msu,
version_2_11_3,
version_2_11_2_uiuc,
version_2_11_2_msu,
version_2_11_2_educog,
version_2_11_2,
version_2_11_1,
version_2_11_0_RC3,
version_2_11_0_RC2,
version_2_11_0_RC1,
version_2_11_0,
version_2_10_X,
version_2_10_1,
loncapaMITrelate_1,
language_hyphenation_merge,
language_hyphenation,
HEAD,
BZ4492-merge,
BZ4492-feature_horizontal_radioresponse,
BZ4492-feature_Support_horizontal_radioresponse,
BZ4492-Support_horizontal_radioresponse
- Rights to run /cgi-bin/ping.pl on any server in the cluster, from any other host
in the cluster.
- For scripts using lonauthcgi::check_ipbased_access(), access permitted for both 127.0.0.1
and also if remote IP is same as IP of host server.
- check_domain_ip() - new routine: allows access to scripts from any server which belongs
to the same domain as the host server.
- update POD for check_ipbased_access().
- Add new global hash: Apache::lonnet::managerstab to store contents of:
/home/httpd/lonTabs/managers.tab, loaded within BEGIN {} block.
- No automatic access to toggledebug and takeoffline items from server listed in
managers.tab (unlike other keys in %serverstatus_titles).
#!/usr/bin/perl
# ping cgi-script
# $Id: ping.pl,v 1.9 2011/10/17 17:23:25 raeburn Exp $
#
# 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;
use lib '/home/httpd/lib/perl/';
use Apache::lonnet;
use LONCAPA::loncgi;
use LONCAPA::lonauthcgi;
print("Content-type: text/plain\n\n");
&main();
sub main {
my $remote_ip = $ENV{'REMOTE_ADDR'};
my $allowed;
my @hosts = &Apache::lonnet::get_hosts_from_ip($remote_ip);
if (@hosts > 0) {
$allowed = 1;
} elsif (&LONCAPA::lonauthcgi::check_ipbased_access('ping',$remote_ip)) {
$allowed = 1;
} elsif (&LONCAPA::loncgi::check_cookie_and_load_env()) {
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;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>