version 1.2, 2003/09/11 20:54:11
|
version 1.4, 2008/12/25 01:56:03
|
Line 1
|
Line 1
|
#!/usr/bin/perl |
#!/usr/bin/perl |
|
$|=1; |
# Take machine offline, reroute traffic |
# Take machine offline, reroute traffic |
# |
# |
# $Id$ |
# $Id$ |
Line 26
|
Line 27
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
|
|
print "Content-type: text/html\n\n". |
use strict; |
"<html><body bgcolor=#FFFFFF><h1>Take Offline</h1>"; |
use lib '/home/httpd/lib/perl/'; |
unless ($ENV{'QUERY_STRING'}) { |
use Apache::lonlocal; |
print 'No reroute server given, taking completely offline.'; |
use LONCAPA::loncgi; |
&dead(); |
use LONCAPA::lonauthcgi; |
} else { |
|
($otherserver,$domain)=split(/\&/,$ENV{'QUERY_STRING'}); |
print "Content-type: text/html\n\n"; |
print 'Rerouting to '.$otherserver; |
|
&reroute(); |
&main(); |
} |
|
open (STATUS,'>/home/httpd/html/lon-status/reroute.txt'); |
sub main { |
print STATUS "status=rerouting&server=$otherserver&domain=$domain&time=".time."\n"; |
if (!&LONCAPA::lonauthcgi::check_ipbased_access('takeoffline')) { |
close(STATUS); |
if (!&LONCAPA::loncgi::check_cookie_and_load_env()) { |
|
&Apache::lonlocal::get_language_handle(); |
|
print(&LONCAPA::loncgi::missing_cookie_msg()); |
|
return; |
|
} |
|
|
print "</body></html>"; |
if (!&LONCAPA::lonauthcgi::can_view('takeoffline')) { |
|
&Apache::lonlocal::get_language_handle(); |
|
print(&LONCAPA::lonauthcgi::unauthorized_msg('takeoffline')); |
|
return; |
|
} |
|
} |
|
|
|
&Apache::lonlocal::get_language_handle(); |
|
|
|
print '<html><body bgcolor="#FFFFFF"><h1>'.&Apache::lonlocal::mt('Take Offline').'</h1>'; |
|
my $statusmsg; |
|
if ($ENV{'QUERY_STRING'}) { |
|
my ($otherserver,$domain)=split(/\&/,$ENV{'QUERY_STRING'}); |
|
if (&reroute($otherserver,$domain)) { |
|
print &Apache::lonlocal::mt('Rerouting to [_1]',$otherserver); |
|
$statusmsg = "status=rerouting&server=$otherserver&domain=$domain&time=".time. |
|
"by=$Apache::lonnet::env{'user.name'}:$Apache::lonnet::env{'user.domain'}"; |
|
} |
|
} else { |
|
if (&dead()) { |
|
print &Apache::lonlocal::mt('No reroute server given, taking completely offline.'); |
|
$statusmsg = 'status=offline&time='.time."by=$Apache::lonnet::env{'user.name'}:$Apache::lonnet::env{'user.domain'}" |
|
} |
|
} |
|
print "</body></html>"; |
|
if ($statusmsg) { |
|
if (open (STATUS,'>/home/httpd/html/lon-status/reroute.txt')) { |
|
print STATUS "$statusmsg\n"; |
|
close(STATUS); |
|
} else { |
|
print &Apache::lonlocal::mt('Logging of status change to [_1] failed.','reroute.txt'); |
|
} |
|
} |
|
} |
|
|
sub dead { |
sub dead { |
open (OUT,'>/home/httpd/html/index.html'); |
if (open (OUT,'>/home/httpd/html/index.html')) { |
print OUT 'This LON-CAPA server is currently offline.'; |
print OUT &Apache::lonlocal::mt('This LON-CAPA server is currently offline.'); |
close(OUT); |
close(OUT); |
|
return 'ok'; |
|
} |
|
return; |
} |
} |
|
|
sub reroute { |
sub reroute { |
open (OUT,'>/home/httpd/html/index.html'); |
my ($otherserver,$domain) = @_; |
print OUT (<<ENDNEWINDEX); |
if (open (OUT,'>/home/httpd/html/index.html')) { |
|
print OUT (<<ENDNEWINDEX); |
<html> |
<html> |
<head> |
<head> |
<title>Welcome to the LearningOnline Network with CAPA</title> |
<title>Welcome to the LearningOnline Network with CAPA</title> |
Line 63 sub reroute {
|
Line 105 sub reroute {
|
</body> |
</body> |
</html> |
</html> |
ENDNEWINDEX |
ENDNEWINDEX |
close(OUT); |
close(OUT); |
|
return 'ok'; |
|
} |
|
return; |
} |
} |