Hi,

I have a FTP-server which has a subset of directories in the form of
symlinks. When i try to mirror this subset containing these symlinks
lftp either 'downloads' the symlinks, or when i specify -L it tries to
download the symlink as a file even though it links to a directory.

Is this a bug, or intended behaviour? :)

Example scenario:

On disk:
| drwxr-x--- ftp/pub/data/
| drwxr-x--- ftp/pub/data/dir1
| -rw-r----- ftp/pub/data/dir1/file1
| -rw-r----- ftp/pub/data/dir1/file2
| -rw-r----- ftp/pub/data/dir1/file3
| drwxr-x--- ftp/pub/data/dir2
| -rw-r----- ftp/pub/data/dir2/file2
| drwxr-x--- ftp/pub/data/dir3
| -rw-r----- ftp/pub/data/dir3/file3
| 
| drwxr-x--- ftp/pub/symlinks/data/
| lrwxrwxrwx ftp/pub/symlinks/data/dir1/dir1 -> ../../../data/dir1
| lrwxrwxrwx ftp/pub/symlinks/data/dir3/dir3 -> ../../../data/dir3

lftp output:
| lftp host:/pub/symlinks> mirror --just-print data
| mkdir -p file:/home/user/data
| mkdir file:/home/user/data/dir1                          
| shell ln -sf ../../../data/dir1 /home/user/data/dir1/dir1     
| mkdir file:/home/user/data/dir2
| shell ln -sf ../../../data/dir2 /home/user/data/dir2/dir2     
| mkdir file:/home/user/data/dir3
| shell ln -sf ../../../data/dir3 /home/user/data/dir3/dir3     
| chmod 700 file:/home/user/data/dir1
| chmod 700 file:/home/user/data/dir2
| chmod 700 file:/home/user/data/dir3
| Total: 4 directories, 0 files, 3 symlinks

And with -L:
| lftp host:/pub/symlinks> mirror --just-print -L data
| mkdir -p file:/home/user/data
| mkdir file:/home/user/data/dir1                          
| get -O /home/user/data/dir1 ftp://host/pub/symlinks/data/dir1/dir1
| mkdir file:/home/user/data/dir2
| get -O /home/user/data/dir2 ftp://host/pub/symlinks/data/dir2/dir2
| mkdir file:/home/user/data/dir3
| get -O /home/user/data/dir3 ftp://host/pub/symlinks/data/dir3/dir3
| chmod 700 file:/home/user/data/dir1
| chmod 700 file:/home/user/data/dir2
| chmod 700 file:/home/user/data/dir3
| Total: 4 directories, 0 files, 3 symlinks
| New: 3 files, 0 symlinks

Also note that when i enter a directory containing a symlink and
ask to mirror that symlink directly, this -does- work:
| lftp host:/pub/symlinks/data/dir1> ls -la
| lrwxrwxrwx   dir1 -> ../../../data/dir1
| 
| lftp host:/pub/symlinks/data/dir1> mirror --just-print dir1
| mkdir -p file:/home/user/dir1
| get -O /home/user/dir1 ftp://host/pub/symlinks/data/dir1/dir1/file1
| get -O /home/user/dir1 ftp://host/pub/symlinks/data/dir1/dir1/file2
| get -O /home/user/dir1 ftp://host/pub/symlinks/data/dir1/dir1/file3
| chmod 600 file:/home/user/dir1/file1
| Total: 1 directory, 3 file, 0 symlinks
| New: 3 file, 0 symlinks

Any ideas on this? :)

Thanks!
-Sndr.
-- 
| Always try to be modest, and be proud of it!
| 4096R/20CC6CD2 - 6D40 1A20 B9AA 87D4 84C7  FBD6 F3A9 9442 20CC 6CD2

Reply via email to