version 1.599, 2005/02/17 22:43:27
|
version 1.602, 2005/03/02 22:26:36
|
Line 883 sub do_cache_new {
|
Line 883 sub do_cache_new {
|
$setvalue='__undef__'; |
$setvalue='__undef__'; |
} |
} |
if ($debug) { &Apache::lonnet::logthis("Setting $id to $value"); } |
if ($debug) { &Apache::lonnet::logthis("Setting $id to $value"); } |
$memcache->set($id,$setvalue,300); |
$memcache->set($id,$setvalue,$time); |
&make_room($id,$value,$debug); |
# need to make a copy of $value |
|
#&make_room($id,$value,$debug); |
return $value; |
return $value; |
} |
} |
|
|
Line 993 sub subscribe {
|
Line 994 sub subscribe {
|
sub repcopy { |
sub repcopy { |
my $filename=shift; |
my $filename=shift; |
$filename=~s/\/+/\//g; |
$filename=~s/\/+/\//g; |
if ($filename=~m|^/home/httpd/html/adm/|) { return OK; } |
if ($filename=~m|^/home/httpd/html/adm/|) { return 'OK'; } |
if ($filename=~m|^/home/httpd/html/lonUsers/|) { return OK; } |
if ($filename=~m|^/home/httpd/html/lonUsers/|) { return 'OK'; } |
if ($filename=~m|^/home/httpd/html/userfiles/| or |
if ($filename=~m|^/home/httpd/html/userfiles/| or |
$filename=~m|^/*uploaded/|) { |
$filename=~m|^/*uploaded/|) { |
return &repcopy_userfile($filename); |
return &repcopy_userfile($filename); |
} |
} |
$filename=~s/[\n\r]//g; |
$filename=~s/[\n\r]//g; |
my $transname="$filename.in.transfer"; |
my $transname="$filename.in.transfer"; |
if ((-e $filename) || (-e $transname)) { return OK; } |
if ((-e $filename) || (-e $transname)) { return 'OK'; } |
my $remoteurl=subscribe($filename); |
my $remoteurl=subscribe($filename); |
if ($remoteurl =~ /^con_lost by/) { |
if ($remoteurl =~ /^con_lost by/) { |
&logthis("Subscribe returned $remoteurl: $filename"); |
&logthis("Subscribe returned $remoteurl: $filename"); |
return HTTP_SERVICE_UNAVAILABLE; |
return 'HTTP_SERVICE_UNAVAILABLE'; |
} elsif ($remoteurl eq 'not_found') { |
} elsif ($remoteurl eq 'not_found') { |
#&logthis("Subscribe returned not_found: $filename"); |
#&logthis("Subscribe returned not_found: $filename"); |
return HTTP_NOT_FOUND; |
return 'HTTP_NOT_FOUND'; |
} elsif ($remoteurl =~ /^rejected by/) { |
} elsif ($remoteurl =~ /^rejected by/) { |
&logthis("Subscribe returned $remoteurl: $filename"); |
&logthis("Subscribe returned $remoteurl: $filename"); |
return FORBIDDEN; |
return 'FORBIDDEN'; |
} elsif ($remoteurl eq 'directory') { |
} elsif ($remoteurl eq 'directory') { |
return OK; |
return 'OK'; |
} else { |
} else { |
my $author=$filename; |
my $author=$filename; |
$author=~s/\/home\/httpd\/html\/res\/([^\/]*)\/([^\/]*).*/$1\/$2/; |
$author=~s/\/home\/httpd\/html\/res\/([^\/]*)\/([^\/]*).*/$1\/$2/; |
Line 1024 sub repcopy {
|
Line 1025 sub repcopy {
|
my $path="/$parts[1]/$parts[2]/$parts[3]/$parts[4]"; |
my $path="/$parts[1]/$parts[2]/$parts[3]/$parts[4]"; |
if ($path ne "$perlvar{'lonDocRoot'}/res") { |
if ($path ne "$perlvar{'lonDocRoot'}/res") { |
&logthis("Malconfiguration for replication: $filename"); |
&logthis("Malconfiguration for replication: $filename"); |
return HTTP_BAD_REQUEST; |
return 'HTTP_BAD_REQUEST'; |
} |
} |
my $count; |
my $count; |
for ($count=5;$count<$#parts;$count++) { |
for ($count=5;$count<$#parts;$count++) { |
Line 1041 sub repcopy {
|
Line 1042 sub repcopy {
|
my $message=$response->status_line; |
my $message=$response->status_line; |
&logthis("<font color=blue>WARNING:" |
&logthis("<font color=blue>WARNING:" |
." LWP get: $message: $filename</font>"); |
." LWP get: $message: $filename</font>"); |
return HTTP_SERVICE_UNAVAILABLE; |
return 'HTTP_SERVICE_UNAVAILABLE'; |
} else { |
} else { |
if ($remoteurl!~/\.meta$/) { |
if ($remoteurl!~/\.meta$/) { |
my $mrequest=new HTTP::Request('GET',$remoteurl.'.meta'); |
my $mrequest=new HTTP::Request('GET',$remoteurl.'.meta'); |
Line 1053 sub repcopy {
|
Line 1054 sub repcopy {
|
} |
} |
} |
} |
rename($transname,$filename); |
rename($transname,$filename); |
return OK; |
return 'OK'; |
} |
} |
} |
} |
} |
} |
Line 4675 sub symblist {
|
Line 4676 sub symblist {
|
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', |
if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.'_symb.db', |
&GDBM_WRCREAT(),0640)) { |
&GDBM_WRCREAT(),0640)) { |
foreach (keys %newhash) { |
foreach (keys %newhash) { |
$hash{declutter($_)}=$mapname.'___'.&deversion($newhash{$_}); |
$hash{declutter($_)}=&encode_symb($mapname,$newhash{$_}->[1], |
|
$newhash{$_}->[0]); |
} |
} |
if (untie(%hash)) { |
if (untie(%hash)) { |
return 'ok'; |
return 'ok'; |
Line 4829 sub symbread {
|
Line 4831 sub symbread {
|
} |
} |
# ---------------------------------------------------------- There was an entry |
# ---------------------------------------------------------- There was an entry |
if ($syval) { |
if ($syval) { |
unless ($syval=~/\_\d+$/) { |
#unless ($syval=~/\_\d+$/) { |
unless ($ENV{'form.request.prefix'}=~/\.(\d+)\_$/) { |
#unless ($ENV{'form.request.prefix'}=~/\.(\d+)\_$/) { |
&appenv('request.ambiguous' => $thisfn); |
#&appenv('request.ambiguous' => $thisfn); |
return $ENV{$cache_str}=''; |
#return $ENV{$cache_str}=''; |
} |
#} |
$syval.=$1; |
#$syval.=$1; |
} |
#} |
} else { |
} else { |
# ------------------------------------------------------- Was not in symb table |
# ------------------------------------------------------- Was not in symb table |
if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
Line 4879 sub symbread {
|
Line 4881 sub symbread {
|
} |
} |
} |
} |
if ($syval) { |
if ($syval) { |
return $ENV{$cache_str}=&symbclean($syval.'___'.$thisfn); |
return $ENV{$cache_str}=$syval; |
|
#return $ENV{$cache_str}=&symbclean($syval.'___'.$thisfn); |
} |
} |
} |
} |
&appenv('request.ambiguous' => $thisfn); |
&appenv('request.ambiguous' => $thisfn); |
Line 5234 sub getfile {
|
Line 5237 sub getfile {
|
|
|
sub repcopy_userfile { |
sub repcopy_userfile { |
my ($file)=@_; |
my ($file)=@_; |
|
|
if ($file =~ m|^/*uploaded/|) { $file=&filelocation("",$file); } |
if ($file =~ m|^/*uploaded/|) { $file=&filelocation("",$file); } |
if ($file =~ m|^/home/httpd/html/lonUsers/|) { return OK; } |
if ($file =~ m|^/home/httpd/html/lonUsers/|) { return 'OK'; } |
|
|
my ($cdom,$cnum,$filename) = |
my ($cdom,$cnum,$filename) = |
($file=~m|^\Q$perlvar{'lonDocRoot'}\E/+userfiles/+([^/]+)/+([^/]+)/+(.*)|); |
($file=~m|^\Q$perlvar{'lonDocRoot'}\E/+userfiles/+([^/]+)/+([^/]+)/+(.*)|); |
my ($info,$rtncode); |
my ($info,$rtncode); |
Line 5260 sub repcopy_userfile {
|
Line 5261 sub repcopy_userfile {
|
return -1; |
return -1; |
} |
} |
if ($info < $fileinfo[9]) { |
if ($info < $fileinfo[9]) { |
return OK; |
return 'OK'; |
} |
} |
$info = ''; |
$info = ''; |
$lwpresp = &getuploaded('GET',$uri,$cdom,$cnum,\$info,\$rtncode); |
$lwpresp = &getuploaded('GET',$uri,$cdom,$cnum,\$info,\$rtncode); |
Line 5294 sub repcopy_userfile {
|
Line 5295 sub repcopy_userfile {
|
open(FILE,">$file"); |
open(FILE,">$file"); |
print FILE $info; |
print FILE $info; |
close(FILE); |
close(FILE); |
return OK; |
return 'OK'; |
} |
} |
|
|
sub tokenwrapper { |
sub tokenwrapper { |
Line 6114 subscribe($fname) : subscribe to a resou
|
Line 6115 subscribe($fname) : subscribe to a resou
|
|
|
repcopy($filename) : subscribes to the requested file, and attempts to |
repcopy($filename) : subscribes to the requested file, and attempts to |
replicate from the owning library server, Might return |
replicate from the owning library server, Might return |
HTTP_SERVICE_UNAVAILABLE, HTTP_NOT_FOUND, FORBIDDEN, OK, or |
'HTTP_SERVICE_UNAVAILABLE', 'HTTP_NOT_FOUND', 'FORBIDDEN', 'OK', or |
HTTP_BAD_REQUEST, also attempts to grab the metadata for the |
'HTTP_BAD_REQUEST', also attempts to grab the metadata for the |
resource. Expects the local filesystem pathname |
resource. Expects the local filesystem pathname |
(/home/httpd/html/res/....) |
(/home/httpd/html/res/....) |
|
|