Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.915 and 1.917

version 1.915, 2007/10/01 21:06:04 version 1.917, 2007/10/01 23:53:44
Line 320  sub convert_and_load_session_env { Line 320  sub convert_and_load_session_env {
     my ($lonidsdir,$handle)=@_;      my ($lonidsdir,$handle)=@_;
     my @profile;      my @profile;
     {      {
  open(my $idf,'+<',"$lonidsdir/$handle.id");   my $opened = open(my $idf,'+<',"$lonidsdir/$handle.id");
  if (!$idf) {   if (!$opened) {
     return 0;      return 0;
  }   }
  flock($idf,LOCK_SH);   flock($idf,LOCK_SH);
Line 362  sub transfer_profile_to_env { Line 362  sub transfer_profile_to_env {
   
     my $convert;      my $convert;
     {      {
     open(my $idf,'+<',"$lonidsdir/$handle.id");      my $opened = open(my $idf,'+<',"$lonidsdir/$handle.id");
  if (!$idf) {   if (!$opened) {
     return;      return;
  }   }
  flock($idf,LOCK_SH);   flock($idf,LOCK_SH);
Line 397  sub transfer_profile_to_env { Line 397  sub transfer_profile_to_env {
     }      }
 }  }
   
   # ---------------------------------------------------- Check for valid session 
   sub check_for_valid_session {
       my ($r) = @_;
       my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
       my $lonid=$cookies{'lonID'};
       return undef if (!$lonid);
   
       my $handle=&LONCAPA::clean_handle($lonid->value);
       my $lonidsdir=$r->dir_config('lonIDsDir');
       return undef if (!-e "$lonidsdir/$handle.id");
   
       my $opened = open(my $idf,'+<',"$lonidsdir/$handle.id");
       return undef if (!$opened);
   
       flock($idf,LOCK_SH);
       my %disk_env;
       if (!tie(%disk_env,'GDBM_File',"$lonidsdir/$handle.id",
       &GDBM_READER(),0640)) {
    return undef;
       }
   
       if (!defined($disk_env{'user.name'})
    || !defined($disk_env{'user.domain'})) {
    return undef;
       }
       return $handle;
   }
   
 sub timed_flock {  sub timed_flock {
     my ($file,$lock_type) = @_;      my ($file,$lock_type) = @_;
     my $failed=0;      my $failed=0;
Line 431  sub appenv { Line 459  sub appenv {
             $env{$key}=$newenv{$key};              $env{$key}=$newenv{$key};
         }          }
     }      }
     open(my $env_file,'+<',$env{'user.environment'});      my $opened = open(my $env_file,'+<',$env{'user.environment'});
     if ($env_file      if ($opened
  && &timed_flock($env_file,LOCK_EX)   && &timed_flock($env_file,LOCK_EX)
  &&   &&
  tie(my %disk_env,'GDBM_File',$env{'user.environment'},   tie(my %disk_env,'GDBM_File',$env{'user.environment'},
Line 453  sub delenv { Line 481  sub delenv {
                 "Attempt to delete from environment ".$delthis);                  "Attempt to delete from environment ".$delthis);
         return 'error';          return 'error';
     }      }
     open(my $env_file,'+<',$env{'user.environment'});      my $opened = open(my $env_file,'+<',$env{'user.environment'});
     if ($env_file      if ($opened
  && &timed_flock($env_file,LOCK_EX)   && &timed_flock($env_file,LOCK_EX)
  &&   &&
  tie(my %disk_env,'GDBM_File',$env{'user.environment'},   tie(my %disk_env,'GDBM_File',$env{'user.environment'},

Removed from v.1.915  
changed lines
  Added in v.1.917


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>