--- loncom/cgi/ping.pl 2003/09/01 03:37:27 1.5 +++ loncom/cgi/ping.pl 2008/11/28 20:50:25 1.7 @@ -1,6 +1,6 @@ #!/usr/bin/perl # ping cgi-script -# $Id: ping.pl,v 1.5 2003/09/01 03:37:27 albertel Exp $ +# $Id: ping.pl,v 1.7 2008/11/28 20:50:25 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,42 +25,31 @@ # http://www.lon-capa.org/ # - +use strict; $|=1; use lib '/home/httpd/lib/perl/'; -use LONCAPA::Configuration; - -use IO::File; -use IO::Socket; +use Apache::lonnet; +use LONCAPA::loncgi; -my %perlvar; +print("Content-type: text/plain\n\n"); -# -------------------------------------------------- Non-critical communication -sub reply { - my ($cmd,$server)=@_; - my $peerfile="$perlvar{'lonSockDir'}/$server"; - my $client=IO::Socket::UNIX->new(Peer =>"$peerfile", - Type => SOCK_STREAM, - Timeout => 10) - or return "con_lost"; - print $client "$cmd\n"; - my $answer=<$client>; - chomp($answer); - if (!$answer) { $answer="con_lost"; } - return $answer; -} +&main(); +sub main { + if (!&LONCAPA::loncgi::check_ipbased_access('ping')) { + if (!&LONCAPA::loncgi::check_cookie_and_load_env()) { + return; + } -# --------------------- Read loncapa.conf (and by default loncapa_apache.conf). -my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf'); -%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 + if (!&LONCAPA::loncgi::can_view('ping')) { + return; + } + } -$testhost=$ENV{'QUERY_STRING'}; -$testhost=~s/\W//g; + my $testhost=$ENV{'QUERY_STRING'}; + $testhost=~s/\W//g; -print "Content-type: text/plain\n\n". - &reply('ping',$testhost)."\n"; + print &Apache::lonnet::reply('ping',$testhost)."\n"; + return; +}