--- loncom/lonnet/perl/lonnet.pm 2001/01/11 10:43:09 1.95 +++ loncom/lonnet/perl/lonnet.pm 2001/01/19 17:21:15 1.98 @@ -248,7 +248,7 @@ sub appenv { my $lockfh; unless ($lockfh=Apache::File->new("$ENV{'user.environment'}")) { - return 'error'; + return 'error: '.$!; } unless (flock($lockfh,LOCK_EX)) { &logthis("WARNING: ". @@ -261,7 +261,7 @@ sub appenv { { my $fh; unless ($fh=Apache::File->new("$ENV{'user.environment'}")) { - return 'error'; + return 'error: '.$!; } @oldenv=<$fh>; $fh->close(); @@ -693,8 +693,7 @@ sub coursedescription { if ($chome ne 'no_host') { my $rep=reply("dump:$cdomain:$cnum:environment",$chome); if ($rep ne 'con_lost') { - my $normalid=$courseid; - $normalid=~s/\//\_/g; + my $normalid=$cdomain.'_'.$cnum; my %envhash=(); my %returnhash=('home' => $chome, 'domain' => $cdomain, @@ -1595,9 +1594,6 @@ sub EXT { if ($ENV{'request.course.id'}) { # ----------------------------------------------------- Cascading lookup scheme my $symbp=&symbread(); - unless ($symbp) { - &logthis('No symb for '.$ENV{'request.filename'}); - } my $mapp=(split(/\_\_\_/,$symbp))[0]; my $symbparm=$symbp.'.'.$spacequalifierrest; @@ -1642,17 +1638,14 @@ sub EXT { } # -------------------------------------------------------- second, check course - my $section=''; - if ($ENV{'request.course.sec'}) { - $section='_'.$ENV{'request.course.sec'}; - } + my $reply=&reply('get:'. - $ENV{'course.'.$ENV{'request.course.id'}.$section.'.domain'}.':'. - $ENV{'course.'.$ENV{'request.course.id'}.$section.'.num'}. + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'. + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}. ':resourcedata:'. &escape($seclevelr).'&'.&escape($seclevelm).'&'.&escape($seclevel).'&'. &escape($courselevelr).'&'.&escape($courselevelm).'&'.&escape($courselevel), - $ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}); + $ENV{'course.'.$ENV{'request.course.id'}.'.home'}); if ($reply!~/^error\:/) { map { if ($_) { return &unescape($_); } @@ -1661,11 +1654,11 @@ sub EXT { if (($reply=~/^con_lost/) || ($reply=~/^error\:/)) { &logthis("WARNING:". " Getting ".$reply." asking for ".$varname." for ". - $ENV{'course.'.$ENV{'request.course.id'}.$section.'.num'}. + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}. ' at '. - $ENV{'course.'.$ENV{'request.course.id'}.$section.'.domain'}. + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}. ' from '. - $ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}. + $ENV{'course.'.$ENV{'request.course.id'}.'.home'}. ""); } # ------------------------------------------------------ third, check map parms @@ -1850,16 +1843,19 @@ sub numval { sub rndseed { my $symb; unless ($symb=&symbread()) { return time; } - my $symbchck=unpack("%32C*",$symb); - my $symbseed=numval($symb)%$symbchck; - my $namechck=unpack("%32C*",$ENV{'user.name'}); - my $nameseed=numval($ENV{'user.name'})%$namechck; - return int( $symbseed - .$nameseed - .unpack("%32C*",$ENV{'user.domain'}) - .unpack("%32C*",$ENV{'request.course.id'}) - .$namechck - .$symbchck); + { + use integer; + my $symbchck=unpack("%32C*",$symb) << 27; + my $symbseed=numval($symb)%$symbchck << 22; + my $namechck=unpack("%32C*",$ENV{'user.name'}) << 17; + my $nameseed=numval($ENV{'user.name'})%$namechck << 12; + my $domainseed=unpack("%32C*",$ENV{'user.domain'}) << 7; + my $courseseed=unpack("%32C*",$ENV{'request.course.id'}); + my $num=$symbseed+$nameseed+$domainseed+$courseseed+$namechck+$symbchck; + &Apache::lonxml::debug("$symbseed:$nameseed;$domainseed|$courseseed;$namechck:$symbchck"); + &Apache::lonxml::debug("rndseed :$num:$symb"); + return $num; + } } sub ireceipt {