Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.95 and 1.101

version 1.95, 2001/01/11 10:43:09 version 1.101, 2001/01/30 01:31:05
Line 85 Line 85
 # 05/01/01 Guy Albertelli  # 05/01/01 Guy Albertelli
 # 05/01,06/01,09/01 Gerd Kortemeyer  # 05/01,06/01,09/01 Gerd Kortemeyer
 # 09/01 Guy Albertelli  # 09/01 Guy Albertelli
 # 09/01,10/01,11/01 Gerd Kortemeyer  # 09/01,10/01,11/01,29/01 Gerd Kortemeyer
   
 package Apache::lonnet;  package Apache::lonnet;
   
Line 248  sub appenv { Line 248  sub appenv {
   
     my $lockfh;      my $lockfh;
     unless ($lockfh=Apache::File->new("$ENV{'user.environment'}")) {      unless ($lockfh=Apache::File->new("$ENV{'user.environment'}")) {
        return 'error';         return 'error: '.$!;
     }      }
     unless (flock($lockfh,LOCK_EX)) {      unless (flock($lockfh,LOCK_EX)) {
          &logthis("<font color=blue>WARNING: ".           &logthis("<font color=blue>WARNING: ".
Line 261  sub appenv { Line 261  sub appenv {
     {      {
      my $fh;       my $fh;
      unless ($fh=Apache::File->new("$ENV{'user.environment'}")) {       unless ($fh=Apache::File->new("$ENV{'user.environment'}")) {
  return 'error';   return 'error: '.$!;
      }       }
      @oldenv=<$fh>;       @oldenv=<$fh>;
      $fh->close();       $fh->close();
Line 693  sub coursedescription { Line 693  sub coursedescription {
     if ($chome ne 'no_host') {      if ($chome ne 'no_host') {
        my $rep=reply("dump:$cdomain:$cnum:environment",$chome);         my $rep=reply("dump:$cdomain:$cnum:environment",$chome);
        if ($rep ne 'con_lost') {         if ($rep ne 'con_lost') {
            my $normalid=$courseid;             my $normalid=$cdomain.'_'.$cnum;
            $normalid=~s/\//\_/g;  
            my %envhash=();             my %envhash=();
            my %returnhash=('home'   => $chome,              my %returnhash=('home'   => $chome, 
                            'domain' => $cdomain,                             'domain' => $cdomain,
Line 1528  sub condval { Line 1527  sub condval {
 # --------------------------------------------------------- Value of a Variable  # --------------------------------------------------------- Value of a Variable
   
 sub EXT {  sub EXT {
     my $varname=shift;      my ($varname,$psymb)=@_;
     unless ($varname) { return ''; }      unless ($varname) { return ''; }
     my ($realm,$space,$qualifier,@therest)=split(/\./,$varname);      my ($realm,$space,$qualifier,@therest)=split(/\./,$varname);
     my $rest;      my $rest;
Line 1594  sub EXT { Line 1593  sub EXT {
     } elsif ($realm eq 'resource') {      } elsif ($realm eq 'resource') {
       if ($ENV{'request.course.id'}) {        if ($ENV{'request.course.id'}) {
 # ----------------------------------------------------- Cascading lookup scheme  # ----------------------------------------------------- Cascading lookup scheme
        my $symbp=&symbread();         my $symbp;
        unless ($symbp) {         if ($psymb) {
            &logthis('No symb for '.$ENV{'request.filename'});            $symbp=$psymb;
        }          } else {
             $symbp=&symbread();
          }
        my $mapp=(split(/\_\_\_/,$symbp))[0];         my $mapp=(split(/\_\_\_/,$symbp))[0];
   
        my $symbparm=$symbp.'.'.$spacequalifierrest;         my $symbparm=$symbp.'.'.$spacequalifierrest;
Line 1642  sub EXT { Line 1643  sub EXT {
       }        }
   
 # -------------------------------------------------------- second, check course  # -------------------------------------------------------- second, check course
         my $section='';  
         if ($ENV{'request.course.sec'}) {  
     $section='_'.$ENV{'request.course.sec'};  
         }  
         my $reply=&reply('get:'.          my $reply=&reply('get:'.
               $ENV{'course.'.$ENV{'request.course.id'}.$section.'.domain'}.':'.                $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.
               $ENV{'course.'.$ENV{'request.course.id'}.$section.'.num'}.                $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.
       ':resourcedata:'.        ':resourcedata:'.
    &escape($seclevelr).'&'.&escape($seclevelm).'&'.&escape($seclevel).'&'.     &escape($seclevelr).'&'.&escape($seclevelm).'&'.&escape($seclevel).'&'.
    &escape($courselevelr).'&'.&escape($courselevelm).'&'.&escape($courselevel),     &escape($courselevelr).'&'.&escape($courselevelm).'&'.&escape($courselevel),
    $ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'});     $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
       if ($reply!~/^error\:/) {        if ($reply!~/^error\:/) {
   map {    map {
       if ($_) { return &unescape($_); }        if ($_) { return &unescape($_); }
Line 1661  sub EXT { Line 1659  sub EXT {
       if (($reply=~/^con_lost/) || ($reply=~/^error\:/)) {        if (($reply=~/^con_lost/) || ($reply=~/^error\:/)) {
   &logthis("<font color=blue>WARNING:".    &logthis("<font color=blue>WARNING:".
                 " Getting ".$reply." asking for ".$varname." for ".                  " Getting ".$reply." asking for ".$varname." for ".
                 $ENV{'course.'.$ENV{'request.course.id'}.$section.'.num'}.                  $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.
                 ' at '.                  ' at '.
                 $ENV{'course.'.$ENV{'request.course.id'}.$section.'.domain'}.                  $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.
                 ' from '.                  ' from '.
                 $ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}.                  $ENV{'course.'.$ENV{'request.course.id'}.'.home'}.
                  "</font>");                   "</font>");
       }        }
 # ------------------------------------------------------ third, check map parms  # ------------------------------------------------------ third, check map parms
Line 1850  sub numval { Line 1848  sub numval {
 sub rndseed {  sub rndseed {
     my $symb;      my $symb;
     unless ($symb=&symbread()) { return time; }      unless ($symb=&symbread()) { return time; }
     my $symbchck=unpack("%32C*",$symb);      { 
     my $symbseed=numval($symb)%$symbchck;        use integer;
     my $namechck=unpack("%32C*",$ENV{'user.name'});        my $symbchck=unpack("%32C*",$symb) << 27;
     my $nameseed=numval($ENV{'user.name'})%$namechck;        my $symbseed=numval($symb) << 22;
     return int( $symbseed        my $namechck=unpack("%32C*",$ENV{'user.name'}) << 17;
        .$nameseed        my $nameseed=numval($ENV{'user.name'}) << 12;
                .unpack("%32C*",$ENV{'user.domain'})        my $domainseed=unpack("%32C*",$ENV{'user.domain'}) << 7;
                .unpack("%32C*",$ENV{'request.course.id'})        my $courseseed=unpack("%32C*",$ENV{'request.course.id'});
                .$namechck        my $num=$symbseed+$nameseed+$domainseed+$courseseed+$namechck+$symbchck;
                .$symbchck);        #uncommenting these lines can break things!
         #&Apache::lonxml::debug("$symbseed:$nameseed;$domainseed|$courseseed;$namechck:$symbchck");
         #&Apache::lonxml::debug("rndseed :$num:$symb");
         return $num;
       }
 }  }
   
 sub ireceipt {  sub ireceipt {

Removed from v.1.95  
changed lines
  Added in v.1.101


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