Diff for /rat/lonuserstate.pm between versions 1.20 and 1.21

version 1.20, 2000/11/21 20:46:42 version 1.21, 2000/12/28 21:42:28
Line 12 Line 12
 #  #
 # 7/15,7/17,7/18,8/1,8/2,8/4,8/5,8/21,8/22,8/23,8/30,  # 7/15,7/17,7/18,8/1,8/2,8/4,8/5,8/21,8/22,8/23,8/30,
 # 9/2,9/4,9/29,9/30,10/2,10/11,10/30,10/31,  # 9/2,9/4,9/29,9/30,10/2,10/11,10/30,10/31,
 # 11/1,11/2,11/14,11/16,11/22 Gerd Kortemeyer  # 11/1,11/2,11/14,11/16,11/22,12/28 Gerd Kortemeyer
   
 package Apache::lonuserstate;  package Apache::lonuserstate;
   
Line 24  use Apache::lonnet(); Line 24  use Apache::lonnet();
 use GDBM_File;  use GDBM_File;
 use Apache::lonmsg;  use Apache::lonmsg;
 use Safe;  use Safe;
   use Safe::Hole;
 use Opcode;  use Opcode;
   
 # ---------------------------------------------------- Globals for this package  # ---------------------------------------------------- Globals for this package
Line 33  my %hash;    # The big tied hash Line 34  my %hash;    # The big tied hash
 my %parmhash;# The hash with the parameters  my %parmhash;# The hash with the parameters
 my @cond;    # Array with all of the conditions  my @cond;    # Array with all of the conditions
 my $errtext; # variable with all errors  my $errtext; # variable with all errors
   my $retfurl; # variable with the very first URL in the course
   
 # --------------------------------------------------------- Loads map from disk  # --------------------------------------------------------- Loads map from disk
   
Line 224  sub traceroute { Line 226  sub traceroute {
     $sofar=simplify($sofar);      $sofar=simplify($sofar);
     unless ($beenhere=~/\&$rid\&/) {      unless ($beenhere=~/\&$rid\&/) {
        $beenhere.=$rid.'&';           $beenhere.=$rid.'&';  
          if ($retfurl eq '') {
              $retfurl=$hash{'src_'.$rid};
          }
        if (defined($hash{'conditions_'.$rid})) {         if (defined($hash{'conditions_'.$rid})) {
    $hash{'conditions_'.$rid}=simplify(     $hash{'conditions_'.$rid}=simplify(
            '('.$hash{'conditions_'.$rid}.')|('.$sofar.')');             '('.$hash{'conditions_'.$rid}.')|('.$sofar.')');
Line 358  sub readmap { Line 363  sub readmap {
    unlink($fn.'_symb.db');     unlink($fn.'_symb.db');
    unlink($fn.'.state');     unlink($fn.'.state');
    unlink($fn.'parms.db');     unlink($fn.'parms.db');
      $retfurl='';
    if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_WRCREAT,0640)) &&     if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_WRCREAT,0640)) &&
        (tie(%parmhash,'GDBM_File',$fn.'_parms.db',&GDBM_WRCREAT,0640))) {         (tie(%parmhash,'GDBM_File',$fn.'_parms.db',&GDBM_WRCREAT,0640))) {
     %hash=();      %hash=();
Line 387  sub readmap { Line 393  sub readmap {
                        "Could not tie coursemap $fn for $uri.</font>");                          "Could not tie coursemap $fn for $uri.</font>"); 
    }     }
    &Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext);     &Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext);
    return $errtext;     return ($retfurl,$errtext);
 }  }
   
 # ------------------------------------------------------- Evaluate state string  # ------------------------------------------------------- Evaluate state string
   
 sub evalstate {  sub evalstate {
     my $safeeval = new Safe;  
     my $fn=$ENV{'request.course.fn'}.'.state';      my $fn=$ENV{'request.course.fn'}.'.state';
     my $state='2';      my $state='2';
     if (-e $fn) {      if (-e $fn) {
Line 402  sub evalstate { Line 408  sub evalstate {
         my $fh=Apache::File->new($fn);          my $fh=Apache::File->new($fn);
         @conditions=<$fh>;          @conditions=<$fh>;
        }           }  
          my $safeeval = new Safe;
          my $safehole = new Safe::Hole;
        $safeeval->permit("entereval");         $safeeval->permit("entereval");
        $safeeval->permit(":base_math");         $safeeval->permit(":base_math");
        $safeeval->deny(":base_io");         $safeeval->deny(":base_io");
        $safeeval->share_from('Apache::lonnet',['&EXT']);         $safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT');
        map {         map {
    my $line=$_;     my $line=$_;
            chomp($line);             chomp($line);

Removed from v.1.20  
changed lines
  Added in v.1.21


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