--- loncom/lonnet/perl/lonnet.pm	2000/06/30 17:09:51	1.16
+++ loncom/lonnet/perl/lonnet.pm	2000/07/17 21:36:33	1.18
@@ -13,6 +13,8 @@
 # put(namesp,hash)   : stores hash in namesp
 # dump(namesp)       : dumps the complete namespace into a hash
 # 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,
 # 7/1,7/2,7/9,7/10,7/12,7/14,7/15,7/19,
@@ -22,7 +24,7 @@
 # 04/05,05/29,05/31,06/01,
 # 06/05,06/26 Gerd Kortemeyer
 # 06/26 Ben Tyszka
-# 06/30 Gerd Kortemeyer
+# 06/30,07/15,07/17 Gerd Kortemeyer
 
 package Apache::lonnet;
 
@@ -291,6 +293,7 @@ sub subscribe {
 sub repcopy {
     my $filename=shift;
     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");
@@ -354,9 +357,6 @@ sub ssi {
     return $response->content;
 }
 
-
-
-
 # ------------------------------------------------------------------------- Log
 
 sub log {
@@ -591,6 +591,17 @@ sub plaintext {
 sub assignrole {
 }
 
+# ------------------------------------------------------------ Directory lister
+
+sub dirlist {
+    my $uri=shift;
+    $uri=~s/^\///;
+    $uri=~s/\/$//;
+    $uri=~/^res\/(\w+)\/(\w+)/;
+    my $listing=reply('ls:'.$perlvar{'lonDocRoot'}.'/'.$uri,homeserver($2,$1));
+    return split(/:/,$listing);
+}
+
 # -------------------------------------------------------- Escape Special Chars
 
 sub escape {