version 1.1132, 2011/09/16 22:24:01
|
version 1.1133, 2011/10/06 11:01:55
|
Line 2212 sub is_cached_new {
|
Line 2212 sub is_cached_new {
|
my ($name,$id,$debug) = @_; |
my ($name,$id,$debug) = @_; |
$id=&make_key($name,$id); |
$id=&make_key($name,$id); |
if (exists($remembered{$id})) { |
if (exists($remembered{$id})) { |
if ($debug) { &Apache::lonnet::logthis("Earyl return $id of $remembered{$id} "); } |
if ($debug) { &Apache::lonnet::logthis("Early return $id of $remembered{$id} "); } |
$accessed{$id}=[&gettimeofday()]; |
$accessed{$id}=[&gettimeofday()]; |
$hits++; |
$hits++; |
return ($remembered{$id},1); |
return ($remembered{$id},1); |
Line 6179 sub allowed {
|
Line 6179 sub allowed {
|
} |
} |
return 'F'; |
return 'F'; |
} |
} |
|
# |
|
# Removes the versino from a URI and |
|
# splits it in to its filename and path to the filename. |
|
# Seems like File::Basename could have done this more clearly. |
|
# Parameters: |
|
# $uri - input URI |
|
# Returns: |
|
# Two element list consisting of |
|
# $pathname - the URI up to and excluding the trailing / |
|
# $filename - The part of the URI following the last / |
|
# NOTE: |
|
# Another realization of this is simply: |
|
# use File::Basename; |
|
# ... |
|
# $uri = shift; |
|
# $filename = basename($uri); |
|
# $path = dirname($uri); |
|
# return ($filename, $path); |
|
# |
|
# The implementation below is probably faster however. |
|
# |
sub split_uri_for_cond { |
sub split_uri_for_cond { |
my $uri=&deversion(&declutter(shift)); |
my $uri=&deversion(&declutter(shift)); |
my @uriparts=split(/\//,$uri); |
my @uriparts=split(/\//,$uri); |
Line 9693 sub getCODE {
|
Line 9713 sub getCODE {
|
} |
} |
return undef; |
return undef; |
} |
} |
|
# |
|
# Determines the random seed for a specific context: |
|
# |
|
# parameters: |
|
# symb - in course context the symb for the seed. |
|
# course_id - The course id of the form domain_coursenum. |
|
# domain - Domain for the user. |
|
# course - Course for the user. |
|
# cenv - environment of the course. |
|
# |
|
# NOTE: |
|
# All parameters are picked out of the environment if missing |
|
# or not defined. |
|
# If a symb cannot be determined the current time is used instead. |
|
# |
|
# For a given well defined symb, courside, domain, username, |
|
# and course environment, the seed is reproducible. |
|
# |
sub rndseed { |
sub rndseed { |
my ($symb,$courseid,$domain,$username)=@_; |
my ($symb,$courseid,$domain,$username, $cenv)=@_; |
my ($wsymb,$wcourseid,$wdomain,$wusername)=&whichuser(); |
my ($wsymb,$wcourseid,$wdomain,$wusername)=&whichuser(); |
if (!defined($symb)) { |
if (!defined($symb)) { |
unless ($symb=$wsymb) { return time; } |
unless ($symb=$wsymb) { return time; } |
Line 9703 sub rndseed {
|
Line 9740 sub rndseed {
|
if (!$courseid) { $courseid=$wcourseid; } |
if (!$courseid) { $courseid=$wcourseid; } |
if (!$domain) { $domain=$wdomain; } |
if (!$domain) { $domain=$wdomain; } |
if (!$username) { $username=$wusername } |
if (!$username) { $username=$wusername } |
my $which=&get_rand_alg(); |
|
|
my $which; |
|
if (defined($cenv->{'rndseed'})) { |
|
$which = $cenv->{'rndseed'}; |
|
} else { |
|
$which =&get_rand_alg($courseid); |
|
} |
|
|
if (defined(&getCODE())) { |
if (defined(&getCODE())) { |
|
|
if ($which eq '64bit5') { |
if ($which eq '64bit5') { |
return &rndseed_CODE_64bit5($symb,$courseid,$domain,$username); |
return &rndseed_CODE_64bit5($symb,$courseid,$domain,$username); |
} elsif ($which eq '64bit4') { |
} elsif ($which eq '64bit4') { |