version 1.410, 2003/09/10 15:53:16
|
version 1.413, 2003/09/16 17:54:50
|
Line 246 sub critical {
|
Line 246 sub critical {
|
return $answer; |
return $answer; |
} |
} |
|
|
|
# |
# -------------- Remove all key from the env that start witha lowercase letter |
# -------------- Remove all key from the env that start witha lowercase letter |
# (Which is alweways a lon-capa value) |
# (Which is always a lon-capa value) |
|
|
sub cleanenv { |
sub cleanenv { |
|
# unless (defined(&Apache::exists_config_define("MODPERL2"))) { return; } |
|
# unless (&Apache::exists_config_define("MODPERL2")) { return; } |
foreach my $key (keys(%ENV)) { |
foreach my $key (keys(%ENV)) { |
if ($key =~ /^[a-z]/) { |
if ($key =~ /^[a-z]/) { |
delete($ENV{$key}); |
delete($ENV{$key}); |
Line 436 sub spareserver {
|
Line 440 sub spareserver {
|
my $lowestserver=$loadpercent > $userloadpercent? |
my $lowestserver=$loadpercent > $userloadpercent? |
$loadpercent : $userloadpercent; |
$loadpercent : $userloadpercent; |
foreach $tryserver (keys %spareid) { |
foreach $tryserver (keys %spareid) { |
my $loadans=reply('load',$tryserver); |
my $loadans=reply('load',$tryserver); |
my $userloadans=reply('userload',$tryserver); |
my $userloadans=reply('userload',$tryserver); |
if ($userloadans !~ /\d/) { $userloadans=0; } |
if ($loadans !~ /\d/ && $userloadans !~ /\d/) { |
my $answer=$loadans > $userloadans? |
next; #didn't get a number from the server |
$loadans : $userloadans; |
} |
if (($answer =~ /\d/) && ($answer<$lowestserver)) { |
my $answer; |
$spareserver="http://$hostname{$tryserver}"; |
if ($loadans =~ /\d/) { |
$lowestserver=$answer; |
if ($userloadans =~ /\d/) { |
} |
#both are numbers, pick the bigger one |
|
$answer=$loadans > $userloadans? |
|
$loadans : $userloadans; |
|
} else { |
|
$answer = $loadans; |
|
} |
|
} else { |
|
$answer = $userloadans; |
|
} |
|
if (($answer =~ /\d/) && ($answer<$lowestserver)) { |
|
$spareserver="http://$hostname{$tryserver}"; |
|
$lowestserver=$answer; |
|
} |
} |
} |
return $spareserver; |
return $spareserver; |
} |
} |
Line 2590 sub is_on_map {
|
Line 2606 sub is_on_map {
|
if ($match) { |
if ($match) { |
return (1,$1); |
return (1,$1); |
} else { |
} else { |
return (0,0); |
my ($name,$ext)=($filename=~/^(.+)\.(\w+)$/); |
|
$ENV{'acc.res.'.$ENV{'request.course.id'}.'.'.$pathname}=~ |
|
/\&(\Q$name\E\.\d+\.$ext)\:([\d\|]+)\&/; |
|
return (0,$2,$pathname.'/'.$1); |
} |
} |
} |
} |
|
|
Line 3863 sub symbclean {
|
Line 3882 sub symbclean {
|
# ---------------------------------------------- Split symb to find map and url |
# ---------------------------------------------- Split symb to find map and url |
|
|
sub decode_symb { |
sub decode_symb { |
return split(/\_\_\_/,shift); |
my ($map,$resid,$url)=split(/\_\_\_/,shift); |
|
return (&fixversion($map),$resid,&fixversion($url)); |
|
} |
|
|
|
sub fixversion { |
|
my $fn=shift; |
|
if ($fn=~/^(adm|uploaded|public)/) { return $fn; } |
|
my ($match,$cond,$versioned)=&is_on_map($fn); |
|
unless ($match) { |
|
$fn=$versioned; |
|
} |
|
return $fn; |
} |
} |
|
|
# ------------------------------------------------------ Return symb list entry |
# ------------------------------------------------------ Return symb list entry |