--- loncom/auth/lonlogin.pm 2003/02/04 15:11:44 1.30 +++ loncom/auth/lonlogin.pm 2003/02/04 16:03:25 1.31 @@ -1,7 +1,7 @@ # The LearningOnline Network # Login Screen # -# $Id: lonlogin.pm,v 1.30 2003/02/04 15:11:44 www Exp $ +# $Id: lonlogin.pm,v 1.31 2003/02/04 16:03:25 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,7 +50,7 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi - ($ENV{'QUERY_STRING'},['interface','username','domain']); + ($ENV{'QUERY_STRING'},['interface','username','domain','firsturl']); $ENV{'form.interface'}=~s/\W//g; @@ -83,7 +83,8 @@ sub handler { # ------------------------------------------------------- Do the load balancing my $otherserver='http://'.$ENV{'SERVER_NAME'}; - my $firsturl=$ENV{'request.firsturl'}; + my $firsturl= + ($ENV{'request.firsturl'}?$ENV{'request.firsturl'}:$ENV{'form.firsturl'}); # ---------------------------------------- Are we access server and overloaded? if (($role eq 'access') && ($loadpercent>100.0)) { $otherserver=Apache::lonnet::spareserver($loadpercent); @@ -109,9 +110,41 @@ sub handler { my $uextkey=hex($ukey); if ($uextkey>2147483647) { $uextkey-=4294967296; } +# -------------------------------------------------------- Store away log token my $logtoken=Apache::lonnet::reply( 'tmpput:'.$ukey.$lkey.'&'.$firsturl, $lonhost); + +# ------------------- If we cannot talk to ourselves, we are in serious trouble + + if ($logtoken eq 'con_lost') { + my $spares=''; + foreach (keys %Apache::lonnet::hostname) { + if ($_ ne $lonhost) { + $spares.='
'. + $Apache::lonnet::hostname{$_}.''; + if ($Apache::lonnet::spareid{$_}) { + $spares.=' (preferred)'; + } + } + } + $r->print(< +The LearningOnline Network with CAPA + + +

This LON-CAPA server is temporarily not available for login

+

Please attempt to login to one of the following servers:

$spares +

If the problem persists, please contact $servadm.

+ + +ENDTROUBLE + return OK; + } + +# ----------------------------------------------- Apparently we are in business + my $domainlogo=&Apache::loncommon::domainlogo(); # --------------------------------------------------- Print login screen header $r->print(<