version 1.785, 2006/09/28 20:03:55
|
version 1.786, 2006/09/28 21:24:56
|
Line 303 sub convert_and_load_session_env {
|
Line 303 sub convert_and_load_session_env {
|
} |
} |
my %temp_env; |
my %temp_env; |
foreach my $line (@profile) { |
foreach my $line (@profile) { |
|
if ($line !~ m/=/) { |
|
return 0; |
|
} |
chomp($line); |
chomp($line); |
my ($envname,$envvalue)=split(/=/,$line,2); |
my ($envname,$envvalue)=split(/=/,$line,2); |
$temp_env{&unescape($envname)} = &unescape($envvalue); |
$temp_env{&unescape($envname)} = &unescape($envvalue); |
Line 314 sub convert_and_load_session_env {
|
Line 317 sub convert_and_load_session_env {
|
@env{keys(%temp_env)} = @disk_env{keys(%temp_env)}; |
@env{keys(%temp_env)} = @disk_env{keys(%temp_env)}; |
untie(%disk_env); |
untie(%disk_env); |
} |
} |
|
return 1; |
} |
} |
|
|
# ------------------------------------------- Transfer profile into environment |
# ------------------------------------------- Transfer profile into environment |
Line 329 sub transfer_profile_to_env {
|
Line 333 sub transfer_profile_to_env {
|
($handle) = ($env{'user.environment'} =~m|/([^/]+)\.id$| ); |
($handle) = ($env{'user.environment'} =~m|/([^/]+)\.id$| ); |
} |
} |
|
|
my %remove; |
my $convert; |
if (tie(my %disk_env,'GDBM_File',"$lonidsdir/$handle.id",&GDBM_READER(), |
{ |
0640)) { |
open(my $idf,"$lonidsdir/$handle.id"); |
@env{keys(%disk_env)} = @disk_env{keys(%disk_env)}; |
flock($idf,LOCK_SH); |
untie(%disk_env); |
if (tie(my %disk_env,'GDBM_File',"$lonidsdir/$handle.id", |
} else { |
&GDBM_READER(),0640)) { |
&convert_and_load_session_env($lonidsdir,$handle); |
@env{keys(%disk_env)} = @disk_env{keys(%disk_env)}; |
|
untie(%disk_env); |
|
} else { |
|
$convert = 1; |
|
} |
|
} |
|
if ($convert) { |
|
if (!&convert_and_load_session_env($lonidsdir,$handle)) { |
|
&logthis("Failed to load session, or convert session."); |
|
} |
} |
} |
|
|
|
my %remove; |
while ( my $envname = each(%env) ) { |
while ( my $envname = each(%env) ) { |
if (my ($key,$time) = ($envname =~ /^(cgi\.(\d+)_\d+\.)/)) { |
if (my ($key,$time) = ($envname =~ /^(cgi\.(\d+)_\d+\.)/)) { |
if ($time < time-300) { |
if ($time < time-300) { |