Diff for /rat/lonuserstate.pm between versions 1.85 and 1.87

version 1.85, 2005/03/15 17:21:42 version 1.87, 2005/03/15 19:25:30
Line 413  sub accinit { Line 413  sub accinit {
  $acchash{'acc.cond.'.$short.'.'.$condcounter}=$expr;   $acchash{'acc.cond.'.$short.'.'.$condcounter}=$expr;
     }       } 
  } elsif ($_=~/^param_(\d+)\.(\d+)/) {   } elsif ($_=~/^param_(\d+)\.(\d+)/) {
     my $prefix=&Apache::lonnet::declutter($hash{'map_id_'.$1}).      my $prefix=&Apache::lonnet::encode_symb($hash{'map_id_'.$1},$2,
  '___'.$2.'___'.&Apache::lonnet::declutter($hash{'src_'.$1.'.'.$2});      $hash{'src_'.$1.'.'.$2});
     foreach (split(/\&/,$hash{$_})) {      foreach (split(/\&/,$hash{$_})) {
  my ($typename,$value)=split(/\=/,$_);   my ($typename,$value)=split(/\=/,$_);
  my ($type,$name)=split(/\:/,$typename);   my ($type,$name)=split(/\:/,$typename);
Line 504  sub hiddenurls { Line 504  sub hiddenurls {
  $hash{'randomout_'.$currentrids[$k]}=1;   $hash{'randomout_'.$currentrids[$k]}=1;
                 my ($mapid,$resid)=split(/\./,$currentrids[$k]);                  my ($mapid,$resid)=split(/\./,$currentrids[$k]);
                 $randomoutentry.='&'.                  $randomoutentry.='&'.
     &Apache::lonnet::symbclean(      &Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},
        &Apache::lonnet::declutter($hash{'map_id_'.$mapid}).   $resid,
        '___'.$resid.'___'.   $hash{'src_'.$currentrids[$k]}
        &Apache::lonnet::declutter($hash{'src_'.$currentrids[$k]})   ).'&';
        ).'&';  
             }              }
         }          }
     }      }
Line 517  sub hiddenurls { Line 516  sub hiddenurls {
  $hash{'randomout_'.$rid}=1;   $hash{'randomout_'.$rid}=1;
  my ($mapid,$resid)=split(/\./,$rid);   my ($mapid,$resid)=split(/\./,$rid);
  $randomoutentry.='&'.   $randomoutentry.='&'.
     &Apache::lonnet::symbclean(      &Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,
        &Apache::lonnet::declutter($hash{'map_id_'.$mapid}).   $hash{'src_'.$rid}).'&';
        '___'.$resid.'___'.  
        &Apache::lonnet::declutter($hash{'src_'.$rid})  
        ).'&';  
     }      }
 # --------------------------------------- append randomout entry to environment  # --------------------------------------- append randomout entry to environment
     if ($randomoutentry) {      if ($randomoutentry) {
Line 544  sub readmap { Line 540  sub readmap {
  return 'No course data available.';   return 'No course data available.';
     }      }
     @cond=('true:normal');      @cond=('true:normal');
     unlink($fn.'.db');      #unlink($fn.'.db');
     unlink($fn.'_symb.db');      #unlink($fn.'_symb.db');
     unlink($fn.'.state');      unlink($fn.'.state');
     unlink($fn.'parms.db');      unlink($fn.'parms.db');
     undef %randompick;      undef %randompick;
Line 601  sub readmap { Line 597  sub readmap {
     }      }
  }     }  
     } else {      } else {
    # if we are here it is likely because we are already trying to 
    # initialize the course in another child, busy wait trying to 
    # tie the hashes for the next 90 seconds, if we succeed forward 
    # them on to navmaps, if we fail, throw up the Could not init 
    # course screen
    untie(%hash);
    untie(%parmhash);
  &Apache::lonnet::logthis("<font color=blue>WARNING: ".   &Apache::lonnet::logthis("<font color=blue>WARNING: ".
  "Could not tie coursemap $fn for $uri.</font>");    "Could not tie coursemap $fn for $uri.</font>"); 
    my $i=0;
    while($i<90) {
       $i++;
       sleep(1);
       if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER(),0640))) {
    if (tie(%parmhash,'GDBM_File',$fn.'_parms.db',&GDBM_READER(),0640)) {
       $retfurl='/adm/navmaps';
       &Apache::lonnet::appenv("request.course.id"  => $short,
       "request.course.fn"  => $fn,
       "request.course.uri" => $uri);
       untie(%hash);
       untie(%parmhash);
       last;
    }
       }
       untie(%hash);
       untie(%parmhash);
    }
     }      }
     &Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext);      &Apache::lonmsg::author_res_msg($ENV{'request.course.uri'},$errtext);
 # ------------------------------------------------- Check for critical messages  # ------------------------------------------------- Check for critical messages

Removed from v.1.85  
changed lines
  Added in v.1.87


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