Diff for /loncom/auth/lonauth.pm between versions 1.106 and 1.107

version 1.106, 2010/07/20 02:42:33 version 1.107, 2010/07/24 17:42:46
Line 408  sub handler { Line 408  sub handler {
     if ($r->dir_config("lonBalancer") eq 'yes') {      if ($r->dir_config("lonBalancer") eq 'yes') {
  &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,   &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,
  \%form);   \%form);
         my ($otherserver) = &choose_server($form{'udom'});          my ($otherserver) = &Apache::lonnet::choose_server($form{'udom'});
  $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver);   $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver);
     } else {      } else {
  &success($r,$form{'uname'},$form{'udom'},$authhost,$firsturl,undef,   &success($r,$form{'uname'},$form{'udom'},$authhost,$firsturl,undef,
Line 445  sub check_can_host { Line 445  sub check_can_host {
     }      }
     unless ($canhost) {      unless ($canhost) {
         if ($authhost eq 'no_account_on_host') {          if ($authhost eq 'no_account_on_host') {
             my ($login_host,$hostname) = &choose_server($udom);              my ($login_host,$hostname) = &Apache::lonnet::choose_server($udom);
             &Apache::loncommon::content_type($r,'text/html');              &Apache::loncommon::content_type($r,'text/html');
             $r->send_http_header;              $r->send_http_header;
             if ($login_host ne '') {              if ($login_host ne '') {
Line 469  sub check_can_host { Line 469  sub check_can_host {
         } else {          } else {
             &success($r,$form->{'uname'},$udom,$authhost,'noredirect',undef,              &success($r,$form->{'uname'},$udom,$authhost,'noredirect',undef,
                      $form);                       $form);
             my ($otherserver) = &choose_server($udom);              my ($otherserver) = &Apache::lonnet::choose_server($udom);
             $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver);              $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver);
         }          }
     }      }
 }  }
   
 sub choose_server {  
     my ($udom) = @_;  
     my %domconfhash = &Apache::loncommon::get_domainconf($udom);  
     my %servers = &Apache::lonnet::get_servers($udom);  
     my $lowest_load = 30000;  
     my ($login_host,$hostname);  
     foreach my $lonhost (keys(%servers)) {  
         my $loginvia = $domconfhash{$udom.'.login.loginvia_'.$lonhost};  
         if ($loginvia eq '') {  
             ($login_host, $lowest_load) =  
             &Apache::lonnet::compare_server_load($lonhost, $login_host, $lowest_load);  
         }  
     }  
     if ($login_host ne '') {  
         $hostname = $servers{$login_host};  
     }  
     return ($login_host,$hostname);  
 }  
   
 1;  1;
 __END__  __END__
   

Removed from v.1.106  
changed lines
  Added in v.1.107


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>