Allow for account details after the password if response 332 is given.

The xxx_to_go totals still ain't 100% correct, since name_mapping's aren't considered. (pi).


Cache the work list and just restart that if less than a given age.
Allow local dir scan to be done before connection is made.
Cache the local/remote dir listing and use those if less than a given age.

limit the amount a mirrored area can grow to.
don't mirror unless free space (Joachim)

allow both flock and fcntl locks (see plexus)

Allow per-filestore defaults:
        default_fs_settings=unix{
                recurse_hard=false
                ....
        }

Handle hard-links:
In theory add 'i' to the ls flags, keep the inode number and spot
files that are really the same by having a reverse assoc lookup...
Also check file size, type, .... just in case the remote area is
actually several disks.  On recreateing the link have to check that
everything is on the same disks too.

Track down severe memory leak on processing ftp'dir_open -> get_remote_dir..
that doesn't seem to be there if local_file -> get_remote_dir..


If I have a file here, foo.tar, which is over split_min, then when the
mirror next runs, it will get a new foo.tar and split it to
foo.tar-split/, but not remove the old foo.tar. (tale@uunet)


Also, should there be an option as to whether people would want fetch
both FILE.Z and FILE.gz?  Mirror already doesn't give any sort of
option between FILE and FILE.{Z or gz} --- it just takes the
compresssed one.  If we're interested in saving space, why do we take
two compressed copies? (tale@uunet)


Requests pending:

Masanobu UMEDA <umerin@orchid.mse.kyutech.ac.jp>
	uncompress on pulling files.


mm additions from x920031@rubb.rz.ruhr-uni-bochum.de:
} a) at which time of day can it be mirrored
} b) retry times for different conditions (no contact, transfers failed,
} mirror was ok, etc.)
} c) a measure of the load this particular mirror will produce
} (different mirrors may have weights, and I like to limit the total
} weight)


Pre-size the remote_* arrays based on the size of the local ones.



From: Amos Shapira <amoss@cs.huji.ac.il>
Date: Mon, 21 Nov 1994 17:16:09 +0200
Sender: amoss@CS.HUJI.AC.IL
Status: OR

Hello,

I have an idea I'd love to implement myself if I had time to....

The idea is to make mirror update only the LATEST file which matches a
pattern.

e.g. if you tell mirror to copy ^emacs-.*\.tar\.gz$ then it will copy
only the file which both matches this pattern and has the latest date
(also removing older files in the local dir which match this pattern).

This feature will help people who are interested in maintaining the
latest copy of a piece of software (e.g. emacs, gcc etc.) without holding
the entire history of the file just because mirror copies them.

Possible implementation (?!):

Once the "latest_only" flag is non-nil, let mirror sorround each
pattern between bars ('|') with its own parens and let it split the
list of matches by the number of the parens matched.

I didn't write perl for long (been on vacation abroad) so I'll just
try to show what I mean by example:

given the pattern:

^emacs-.*\.tar\.gz$|^gcc-2.*\.tar\.gz$|.*

mirror will convert this pattern to:

(^emacs-.*\.tar\.gz$)|(^gcc-2.*\.tar\.gz$)|(.*)

and for every file which matches one of the sub-patterns, keep it as
"a file to copy" only if its date is later than whatever matching file
name found so far (so if mirror finds 'emacs-19.26.tar.gz' and then
'emacs-19.27.tar.gz' it will regard only the later (assuming its date
is also newer).

I hope the '.*' pattern will match any new files only if they don't
match the pre-set patterns, so if a new util or a new document is
available then the "mirror'er" will be aware of it.

Hope I made myself clear, please ask if you need clarifications (or
know a better way to achive my goal).





\w\w\w in many places in lsparse.pl to match dates fails if the remote
site allows acented and other similar chars in the data field.
	From: "Thomas K. Netousek" <tkn@VNET.IBM.COM>