[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
albertel
lon-capa-cvs-allow@mail.lon-capa.org
Mon, 01 Oct 2007 21:06:07 -0000
albertel Mon Oct 1 17:06:07 2007 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
- app/del env and transfer_session_env should not create a session env
if it doesn't exist
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.914 loncom/lonnet/perl/lonnet.pm:1.915
--- loncom/lonnet/perl/lonnet.pm:1.914 Sat Sep 29 00:03:51 2007
+++ loncom/lonnet/perl/lonnet.pm Mon Oct 1 17:06:04 2007
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.914 2007/09/29 04:03:51 albertel Exp $
+# $Id: lonnet.pm,v 1.915 2007/10/01 21:06:04 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -320,7 +320,10 @@
my ($lonidsdir,$handle)=@_;
my @profile;
{
- open(my $idf,"$lonidsdir/$handle.id");
+ open(my $idf,'+<',"$lonidsdir/$handle.id");
+ if (!$idf) {
+ return 0;
+ }
flock($idf,LOCK_SH);
@profile=<$idf>;
close($idf);
@@ -359,7 +362,10 @@
my $convert;
{
- open(my $idf,"$lonidsdir/$handle.id");
+ open(my $idf,'+<',"$lonidsdir/$handle.id");
+ if (!$idf) {
+ return;
+ }
flock($idf,LOCK_SH);
if (tie(my %disk_env,'GDBM_File',"$lonidsdir/$handle.id",
&GDBM_READER(),0640)) {
@@ -425,8 +431,9 @@
$env{$key}=$newenv{$key};
}
}
- open(my $env_file,$env{'user.environment'});
- if (&timed_flock($env_file,LOCK_EX)
+ open(my $env_file,'+<',$env{'user.environment'});
+ if ($env_file
+ && &timed_flock($env_file,LOCK_EX)
&&
tie(my %disk_env,'GDBM_File',$env{'user.environment'},
(&GDBM_WRITER()|&GDBM_NOLOCK()),0640)) {
@@ -446,16 +453,17 @@
"Attempt to delete from environment ".$delthis);
return 'error';
}
- open(my $env_file,$env{'user.environment'});
- if (&timed_flock($env_file,LOCK_EX)
+ open(my $env_file,'+<',$env{'user.environment'});
+ if ($env_file
+ && &timed_flock($env_file,LOCK_EX)
&&
tie(my %disk_env,'GDBM_File',$env{'user.environment'},
(&GDBM_WRITER()|&GDBM_NOLOCK()),0640)) {
foreach my $key (keys(%disk_env)) {
if ($key=~/^$delthis/) {
- delete($env{$key});
- delete($disk_env{$key});
- }
+ delete($env{$key});
+ delete($disk_env{$key});
+ }
}
untie(%disk_env);
}