version 1.16, 2000/06/30 17:09:51
|
version 1.20, 2000/07/21 00:40:37
|
Line 13
|
Line 13
|
# put(namesp,hash) : stores hash in namesp |
# put(namesp,hash) : stores hash in namesp |
# dump(namesp) : dumps the complete namespace into a hash |
# dump(namesp) : dumps the complete namespace into a hash |
# ssi(url) : does a complete request cycle on url to localhost |
# ssi(url) : does a complete request cycle on url to localhost |
|
# repcopy(filename) : replicate file |
|
# dirlist(url) : gets a directory listing |
# |
# |
# 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30, |
# 6/1/99,6/2,6/10,6/11,6/12,6/14,6/26,6/28,6/29,6/30, |
# 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19, |
# 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19, |
Line 22
|
Line 24
|
# 04/05,05/29,05/31,06/01, |
# 04/05,05/29,05/31,06/01, |
# 06/05,06/26 Gerd Kortemeyer |
# 06/05,06/26 Gerd Kortemeyer |
# 06/26 Ben Tyszka |
# 06/26 Ben Tyszka |
# 06/30 Gerd Kortemeyer |
# 06/30,07/15,07/17,07/18 Gerd Kortemeyer |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 291 sub subscribe {
|
Line 293 sub subscribe {
|
sub repcopy { |
sub repcopy { |
my $filename=shift; |
my $filename=shift; |
my $transname="$filename.in.transfer"; |
my $transname="$filename.in.transfer"; |
|
if ((-e $filename) || (-e $transname)) { return OK; } |
my $remoteurl=subscribe($filename); |
my $remoteurl=subscribe($filename); |
if ($remoteurl eq 'con_lost') { |
if ($remoteurl eq 'con_lost') { |
&logthis("Subscribe returned con_lost: $filename"); |
&logthis("Subscribe returned con_lost: $filename"); |
Line 298 sub repcopy {
|
Line 301 sub repcopy {
|
} 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 eq 'forbidden') { |
} elsif ($remoteurl eq 'rejected') { |
&logthis("Subscribe returned forbidden: $filename"); |
&logthis("Subscribe returned rejected: $filename"); |
return FORBIDDEN; |
return FORBIDDEN; |
|
} elsif ($remoteurl eq 'directory') { |
|
return OK; |
} else { |
} else { |
my @parts=split(/\//,$filename); |
my @parts=split(/\//,$filename); |
my $path="/$parts[1]/$parts[2]/$parts[3]/$parts[4]"; |
my $path="/$parts[1]/$parts[2]/$parts[3]/$parts[4]"; |
Line 354 sub ssi {
|
Line 359 sub ssi {
|
return $response->content; |
return $response->content; |
} |
} |
|
|
|
|
|
|
|
|
# ------------------------------------------------------------------------- Log |
# ------------------------------------------------------------------------- Log |
|
|
sub log { |
sub log { |
Line 591 sub plaintext {
|
Line 593 sub plaintext {
|
sub assignrole { |
sub assignrole { |
} |
} |
|
|
|
# ------------------------------------------------------------ Directory lister |
|
|
|
sub dirlist { |
|
my $uri=shift; |
|
$uri=~s/^\///; |
|
$uri=~s/\/$//; |
|
my ($res,$udom,$uname,@rest)=split(/\//,$uri); |
|
if ($udom) { |
|
if ($uname) { |
|
my $listing=reply('ls:'.$perlvar{'lonDocRoot'}.'/'.$uri, |
|
homeserver($uname,$udom)); |
|
return split(/:/,$listing); |
|
} else { |
|
my $tryserver; |
|
my %allusers=(); |
|
foreach $tryserver (keys %libserv) { |
|
if ($hostdom{$tryserver} eq $udom) { |
|
my $listing=reply('ls:'.$perlvar{'lonDocRoot'}.'/res/'.$udom, |
|
$tryserver); |
|
if (($listing ne 'no_such_dir') && ($listing ne 'empty') |
|
&& ($listing ne 'con_lost')) { |
|
map { |
|
my ($entry,@stat)=split(/&/,$_); |
|
$allusers{$entry}=1; |
|
} split(/:/,$listing); |
|
} |
|
} |
|
} |
|
my $alluserstr=''; |
|
map { |
|
$alluserstr.=$_.'&user:'; |
|
} sort keys %allusers; |
|
$alluserstr=~s/:$//; |
|
return split(/:/,$alluserstr); |
|
} |
|
} else { |
|
my $tryserver; |
|
my %alldom=(); |
|
foreach $tryserver (keys %libserv) { |
|
$alldom{$hostdom{$tryserver}}=1; |
|
} |
|
my $alldomstr=''; |
|
map { |
|
$alldomstr.=$perlvar{'lonDocRoot'}.'/res/'.$_.'&domain:'; |
|
} sort keys %alldom; |
|
$alldomstr=~s/:$//; |
|
return split(/:/,$alldomstr); |
|
} |
|
} |
|
|
# -------------------------------------------------------- Escape Special Chars |
# -------------------------------------------------------- Escape Special Chars |
|
|
sub escape { |
sub escape { |