--- loncom/auth/switchserver.pm 2018/11/24 16:19:04 1.42 +++ loncom/auth/switchserver.pm 2018/11/28 05:05:30 1.43 @@ -1,7 +1,7 @@ # The LearningOnline Network # Switch Servers Handler # -# $Id: switchserver.pm,v 1.42 2018/11/24 16:19:04 raeburn Exp $ +# $Id: switchserver.pm,v 1.43 2018/11/28 05:05:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -215,7 +215,7 @@ sub handler { # ---------------------------------------------------------------- Get handover my $newcookieid; - (my $is_balancer,undef,my $setcookie) = + my ($is_balancer,$posshost,$setcookie,$offloadto,$dom_balancers) = &Apache::lonnet::check_loadbalancing($env{'user.name'},$env{'user.domain'}); if ($is_balancer && $setcookie && $env{'form.otherserver'}) { @@ -241,12 +241,25 @@ sub handler { } } - my %info=('ip' => $ENV{'REMOTE_ADDR'}, - 'domain' => $env{'user.domain'}, - 'username' => $env{'user.name'}, - 'role' => $env{'form.role'}, - 'server' => $r->dir_config('lonHostID'), - 'balancer' => $is_balancer); + my %info=('ip' => $ENV{'REMOTE_ADDR'}, + 'domain' => $env{'user.domain'}, + 'username' => $env{'user.name'}, + 'home' => $env{'user.home'}, + 'role' => $env{'form.role'}, + 'server' => $r->dir_config('lonHostID'), + 'balancer' => $is_balancer, + 'dom_balancers' => $dom_balancers, + 'offloadto' => ''); + if (ref($offloadto) eq 'HASH') { + foreach my $key (keys(%{$offloadto})) { + if (ref($offloadto->{$key}) eq 'ARRAY') { + $info{'offloadto'} .= $key.'='.join(',',@{$offloadto->{$key}}).'&'; + } + } + $info{'offloadto'} =~ s/\&$//; + } elsif (ref($offloadto) eq 'ARRAY') { + $info{'offloadto'} = join(',',@{$offloadto}); + } if ($newcookieid) { $info{'balcookie'} = $newcookieid; }