--- loncom/auth/lonlogin.pm 2006/05/30 12:45:24 1.75
+++ loncom/auth/lonlogin.pm 2006/12/05 02:55:56 1.85
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Login Screen
#
-# $Id: lonlogin.pm,v 1.75 2006/05/30 12:45:24 www Exp $
+# $Id: lonlogin.pm,v 1.85 2006/12/05 02:55:56 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -41,11 +41,22 @@ use lib '/home/httpd/lib/perl/';
use LONCAPA;
+sub additional_machine_domains {
+ my @domains;
+ open(my $fh,"<".$Apache::lonnet::perlvar{'lonTabDir'}.'/expected_domains.tab');
+ while( my $line = <$fh>) {
+ $line =~ s/\s//g;
+ push(@domains,$line);
+ }
+ return @domains;
+}
+
sub handler {
my $r = shift;
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'}.'&'.$env{'request.querystring'},
+ (join('&',$ENV{'QUERY_STRING'},$env{'request.querystring'},
+ $ENV{'REDIRECT_QUERY_STRING'}),
['interface','username','domain','firsturl','localpath','localres',
'token']);
@@ -73,8 +84,7 @@ sub handler {
my $lonid=$cookies{'lonID'};
my $cookie;
if ($lonid) {
- my $handle=$lonid->value;
- $handle=~s/\W//g;
+ my $handle=&LONCAPA::clean_handle($lonid->value);
my $lonidsdir=$r->dir_config('lonIDsDir');
if (-e "$lonidsdir/$handle.id") {
# Is there an existing token file?
@@ -129,7 +139,8 @@ ENDFAILED
$r->dir_config('lonIconsURL');
my $domain = $r->dir_config('lonDefDomain');
my $testdomain=(split(/\./,$ENV{'HTTP_HOST'}))[0];
- foreach my $posdom (&Apache::lonnet::current_machine_domains()) {
+ foreach my $posdom (&Apache::lonnet::current_machine_domains(),
+ &additional_machine_domains()) {
if (lc($posdom) eq lc($testdomain)) { $domain=$posdom; }
}
if (($env{'form.domain'}) &&
@@ -138,13 +149,12 @@ ENDFAILED
}
my $role = $r->dir_config('lonRole');
my $loadlim = $r->dir_config('lonLoadLim');
- my $servadm = $r->dir_config('lonAdmEMail');
- my $sysadm = $r->dir_config('lonSysEMail');
my $lonhost = $r->dir_config('lonHostID');
my $tabdir = $r->dir_config('lonTabDir');
my $include = $r->dir_config('lonIncludes');
my $expire = $r->dir_config('lonExpire');
my $version = $r->dir_config('lonVersion');
+ my $host_name = $Apache::lonnet::hostname{$lonhost};
# --------------------------------------------- Default values for login fields
@@ -162,7 +172,7 @@ ENDFAILED
my $userloadpercent=&Apache::lonnet::userload();
# ------------------------------------------------------- Do the load balancing
- my $otherserver='http://'.$ENV{'SERVER_NAME'};
+ my $otherserver= &Apache::lonnet::absolute_url($host_name);
my $firsturl=
($env{'request.firsturl'}?$env{'request.firsturl'}:$env{'form.firsturl'});
# ---------------------------------------- Are we access server and overloaded?
@@ -241,7 +251,6 @@ ENDFAILED
Please attempt to login to one of the following servers:
$spares -If the problem persists, please contact $servadm.