version 1.1391, 2018/11/28 05:05:36
|
version 1.1392, 2018/12/05 03:29:11
|
Line 747 sub timed_flock {
|
Line 747 sub timed_flock {
|
} |
} |
} |
} |
|
|
|
sub get_sessionfile_vars { |
|
my ($handle,$lonidsdir,$storearr) = @_; |
|
my %returnhash; |
|
unless (ref($storearr) eq 'ARRAY') { |
|
return %returnhash; |
|
} |
|
if (-l "$lonidsdir/$handle.id") { |
|
my $link = readlink("$lonidsdir/$handle.id"); |
|
if ((-e $link) && ($link =~ m{^\Q$lonidsdir\E/(.+)\.id$})) { |
|
$handle = $1; |
|
} |
|
} |
|
if ((-e "$lonidsdir/$handle.id") && |
|
($handle =~ /^($match_username)\_\d+\_($match_domain)\_(.+)$/)) { |
|
my ($possuname,$possudom,$possuhome) = ($1,$2,$3); |
|
if ((&domain($possudom) ne '') && (&homeserver($possuname,$possudom) eq $possuhome)) { |
|
if (open(my $idf,'+<',"$lonidsdir/$handle.id")) { |
|
flock($idf,LOCK_SH); |
|
if (tie(my %disk_env,'GDBM_File',"$lonidsdir/$handle.id", |
|
&GDBM_READER(),0640)) { |
|
foreach my $item (@{$storearr}) { |
|
$returnhash{$item} = $disk_env{$item}; |
|
} |
|
untie(%disk_env); |
|
} |
|
} |
|
} |
|
} |
|
return %returnhash; |
|
} |
|
|
# ---------------------------------------------------------- Append Environment |
# ---------------------------------------------------------- Append Environment |
|
|
sub appenv { |
sub appenv { |