--- loncom/lonnet/perl/lonnet.pm 2000/11/14 15:58:39 1.62 +++ loncom/lonnet/perl/lonnet.pm 2000/11/15 23:25:59 1.64 @@ -67,7 +67,7 @@ # 10/04 Gerd Kortemeyer # 10/04 Guy Albertelli # 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25,10/26,10/27,10/28,10/29, -# 10/30,10/31,11/2,11/14 Gerd Kortemeyer +# 10/30,10/31,11/2,11/14,11/15 Gerd Kortemeyer package Apache::lonnet; @@ -369,6 +369,9 @@ sub subscribe { return 'not_found'; } my $answer=reply("sub:$fname",$home); + if (($answer eq 'con_lost') || ($answer eq 'rejected')) { + $answer.=' by '.$home; + } return $answer; } @@ -380,14 +383,14 @@ sub repcopy { my $transname="$filename.in.transfer"; if ((-e $filename) || (-e $transname)) { return OK; } my $remoteurl=subscribe($filename); - if ($remoteurl eq 'con_lost') { - &logthis("Subscribe returned con_lost: $filename"); + if ($remoteurl =~ /^con_lost by/) { + &logthis("Subscribe returned $remoteurl: $filename"); return HTTP_SERVICE_UNAVAILABLE; } elsif ($remoteurl eq 'not_found') { &logthis("Subscribe returned not_found: $filename"); return HTTP_NOT_FOUND; - } elsif ($remoteurl eq 'rejected') { - &logthis("Subscribe returned rejected: $filename"); + } elsif ($remoteurl =~ /^rejected by/) { + &logthis("Subscribe returned $remoteurl: $filename"); return FORBIDDEN; } elsif ($remoteurl eq 'directory') { return OK; @@ -1264,11 +1267,12 @@ sub EXT { $ENV{'request.course.id'}.'.'.$spacequalifierrest; # ----------------------------------------------------------- first, check user - my %resourcedata=get('resourcedata',($reslevel,$seclevel,$courselevel)); + my %resourcedata=get('resourcedata',($reslevel,$seclevel,$courselevel)); + if ($resourcedata{$reslevel}!~/^error\:/) { if ($resourcedata{$reslevel}) { return $resourcedata{$reslevel}; } if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; } - + } # -------------------------------------------------------- second, check course my $section=''; if ($ENV{'request.course.sec'}) { @@ -1280,13 +1284,15 @@ sub EXT { ':resourcedata:'. escape($reslevel).':'.escape($seclevel).':'.escape($courselevel), $ENV{'course.'.$ENV{'request.course.id'}.$section.'.home'}); + if ($reply!~/^error\:/) { map { my ($name,$value)=split(/\=/,$_); $resourcedata{unescape($name)}=unescape($value); } split(/\&/,$reply); if ($resourcedata{$reslevel}) { return $resourcedata{$reslevel}; } - if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } + if ($resourcedata{$seclevel}) { return $resourcedata{$seclevel}; } if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; } + } # ------------------------------------------------------ third, check map parms