version 1.29, 2003/01/31 21:51:36
|
version 1.32, 2003/02/17 23:25:59
|
Line 50 sub handler {
|
Line 50 sub handler {
|
|
|
|
|
&Apache::loncommon::get_unprocessed_cgi |
&Apache::loncommon::get_unprocessed_cgi |
($ENV{'QUERY_STRING'},['interface']); |
($ENV{'QUERY_STRING'},['interface','username','domain','firsturl']); |
|
|
|
# ----------------------------------------------------------- Process Interface |
$ENV{'form.interface'}=~s/\W//g; |
$ENV{'form.interface'}=~s/\W//g; |
|
|
|
my $textbrowsers=$r->dir_config('lonTextBrowsers'); |
|
my $httpbrowser=$ENV{"HTTP_USER_AGENT"}; |
|
|
|
foreach (split(/\:/,$textbrowsers)) { |
|
if ($httpbrowser=~/$_/i) { |
|
$ENV{'form.interface'}='textual'; |
|
} |
|
} |
|
|
my $fullgraph=($ENV{'form.interface'} ne 'textual'); |
my $fullgraph=($ENV{'form.interface'} ne 'textual'); |
|
|
my $iconpath= 'http://'.$ENV{'HTTP_HOST'}.':8080'. |
my $iconpath= 'http://'.$ENV{'HTTP_HOST'}.':8080'. |
Line 67 sub handler {
|
Line 77 sub handler {
|
my $tabdir = $r->dir_config('lonTabDir'); |
my $tabdir = $r->dir_config('lonTabDir'); |
my $include = $r->dir_config('lonIncludes'); |
my $include = $r->dir_config('lonIncludes'); |
|
|
|
# --------------------------------------------- Default values for login fields |
|
|
|
my $authusername=($ENV{'form.username'}?$ENV{'form.username'}:''); |
|
my $authdomain=($ENV{'form.domain'}?$ENV{'form.domain'}:$domain); |
|
|
|
# ---------------------------------------------------------- Determine own load |
my $loadavg; |
my $loadavg; |
{ |
{ |
my $loadfile=Apache::File->new('/proc/loadavg'); |
my $loadfile=Apache::File->new('/proc/loadavg'); |
Line 75 sub handler {
|
Line 91 sub handler {
|
$loadavg =~ s/\s.*//g; |
$loadavg =~ s/\s.*//g; |
my $loadpercent=100*$loadavg/$loadlim; |
my $loadpercent=100*$loadavg/$loadlim; |
|
|
|
# ------------------------------------------------------- Do the load balancing |
my $otherserver='http://'.$ENV{'SERVER_NAME'}; |
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? |
# ---------------------------------------- Are we access server and overloaded? |
if (($role eq 'access') && ($loadpercent>100.0)) { |
if (($role eq 'access') && ($loadpercent>100.0)) { |
$otherserver=Apache::lonnet::spareserver($loadpercent); |
$otherserver=Apache::lonnet::spareserver($loadpercent); |
Line 102 sub handler {
|
Line 120 sub handler {
|
my $uextkey=hex($ukey); |
my $uextkey=hex($ukey); |
if ($uextkey>2147483647) { $uextkey-=4294967296; } |
if ($uextkey>2147483647) { $uextkey-=4294967296; } |
|
|
|
# -------------------------------------------------------- Store away log token |
my $logtoken=Apache::lonnet::reply( |
my $logtoken=Apache::lonnet::reply( |
'tmpput:'.$ukey.$lkey.'&'.$firsturl, |
'tmpput:'.$ukey.$lkey.'&'.$firsturl, |
$lonhost); |
$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.='<br /><a href="http://'.$Apache::lonnet::hostname{$_}. |
|
'/adm/login?domain='.$authdomain.'">'. |
|
$Apache::lonnet::hostname{$_}.'</a>'; |
|
if ($Apache::lonnet::spareid{$_}) { |
|
$spares.=' (preferred)'; |
|
} |
|
} |
|
} |
|
$r->print(<<ENDTROUBLE); |
|
<html> |
|
<head><title>The LearningOnline Network with CAPA</title></head> |
|
<body bgcolor="#FFFFFF"> |
|
<img src="/adm/lonKaputt/lonlogo_broken.gif" align="right" /> |
|
<h3>This LON-CAPA server is temporarily not available for login</h3> |
|
<p>Please attempt to login to one of the following servers:</p>$spares |
|
<p>If the problem persists, please contact <tt>$servadm</tt>.</p> |
|
</body> |
|
</html> |
|
ENDTROUBLE |
|
return OK; |
|
} |
|
|
|
# ----------------------------------------------- Apparently we are in business |
|
|
my $domainlogo=&Apache::loncommon::domainlogo(); |
my $domainlogo=&Apache::loncommon::domainlogo(); |
# --------------------------------------------------- Print login screen header |
# --------------------------------------------------- Print login screen header |
$r->print(<<ENDHEADER); |
$r->print(<<ENDHEADER); |
Line 228 ENDSERVERFORM
|
Line 278 ENDSERVERFORM
|
<!-- Row 4 Column 1 --> |
<!-- Row 4 Column 1 --> |
<td align="center" valign="middle" bgcolor="$sidebg"> |
<td align="center" valign="middle" bgcolor="$sidebg"> |
ENDTOP |
ENDTOP |
|
} else { |
|
$r->print('<font color="#FFFFFF"><h1>The Learning<i>Online</i> Network with CAPA</h1><h3>Text-based Interface Login</h3></font>'); |
} |
} |
$r->print(<<ENDLOGIN); |
$r->print(<<ENDLOGIN); |
<form name="client" onsubmit="return(send())"> |
<form name="client" onsubmit="return(send())"> |
Line 239 ENDTOP
|
Line 291 ENDTOP
|
<tr><td bgcolor="$sidebg" colspan=2><img src="$iconpath/userauthentication.gif" alt="User Authentication" /></td></tr> |
<tr><td bgcolor="$sidebg" colspan=2><img src="$iconpath/userauthentication.gif" alt="User Authentication" /></td></tr> |
<tr> |
<tr> |
<td bgcolor="$mainbg"><br /><font size=-1><b> User Name:</b></font></td> |
<td bgcolor="$mainbg"><br /><font size=-1><b> User Name:</b></font></td> |
<td bgcolor="$mainbg"><br /><input type="text" name="uname" size="10" /></td> |
<td bgcolor="$mainbg"><br /><input type="text" name="uname" size="10" value="$authusername" /></td> |
</tr> |
</tr> |
<tr> |
<tr> |
<td bgcolor="$mainbg"><font size=-1><b> Password:</b></font></td> |
<td bgcolor="$mainbg"><font size=-1><b> Password:</b></font></td> |
Line 247 ENDTOP
|
Line 299 ENDTOP
|
</tr> |
</tr> |
<tr> |
<tr> |
<td bgcolor="$mainbg"><font size=-1><b> Domain:</b></font></td> |
<td bgcolor="$mainbg"><font size=-1><b> Domain:</b></font></td> |
<td bgcolor="$mainbg"><input type="text" name="udom" size="10" value=$domain /></td> |
<td bgcolor="$mainbg"><input type="text" name="udom" size="10" value="$authdomain" /></td> |
</tr> |
</tr> |
<tr> |
<tr> |
<td bgcolor="$mainbg"> <a href="/adm/loginproblems.html">Help</a></td> |
<td bgcolor="$mainbg"> <a href="/adm/loginproblems.html">Help</a></td> |