0.6.7 August 2004 * fix compile time problem with gcc 3.4 and the gcc-3.3.3 of SuSE 9.1. 0.6.6 August 2004 * the --eat-leading-spaces option allows ftpcopy and ftpls to deal with some FTP servers showing sometimes more than one space before the file name. * the --data-connect-retries allows ftpcopy and ftpls to more than once try to connect to the data port of an FTP server. By default they now try 5 times, but that may change again. Note that this does not mean that ftpcopy retries when a connection is lost. * the --in-exclude-file option to ftpcopy allows to put the include and exclude patterns in a file. * bugfixes: # --tolower was't taken into account for the in/exclude matching. # the symlink handling of ftpcopy was broken and worked by luck only. # ftpls wasn't able to print big file sizes correctly. * the usual amount of portability workarounds, this time featuring another place to find the publicfile ftpd, a workaround for systems by default using right/UTC for UTC (instead of the more common posix/UTC) and another shell breaking the self check by trying to inform the user that a command was killed by an alarm signal (which, in case you wonder, was exactly what i wanted). 0.6.5 September 2003 * the package should now compile again on systems not recognizing IPv6. * the URL parser used refused URLs w/o a trailing path. * the --raw option erronously wanted an argument. * portability fixes. 0.6.4 July 2003 * package/install may be run multiple times. 0.6.3 July 2003 * ftpls didn't append a trailing / to html output. 0.6.2 February 2003 * package/build script to compile and check the package, not doing any installation or changing symbolic links. * the listing parser is more careful not to eat leading spaces. * another self check fix. 0.6.1 January 2003 * self check improvements: * the self check now works on reiserfs or other file systems not preserving the order of files. * the environment isn't cleared before the self check starts. * enhancements to the --progress option: it know uses the window size instead of a fixed limit of 80, and makes sure that the 100% message is printed. * the programs now include a work-around for the "illegal redirect" problem in case they are used behind some NAT gateway. * --mdtm was broken. * work around "set -e" brokenness in pdksh. * smaller dns library changes to allow to share resolv.conf between machines not having all the same IPvX stacks and to use 127.0.0.1 as nameserver of last resort, not only ::1. 0.6.0 January 2003 * download resume implemented. use the --no-resume option to disable it. * a new option: `--report', to print a progress report on the standard error output. * work around glibc-2.3 stub function for futimes(), which broke ftpcopy. * IPv6 is now supported. * new options --v6 and --v4 to limit command and data connections to this IP protocol. This does not affect DNS queries. 0.5.9 October 2002 * internal development release. * IPv6. 0.5.2 October 2002 * a new option: `--max-depth LEVELS', to descend only up to LEVELS levels of directories, in ftpcopy and ftpls. * another workaround for a strange server implementation. * removed two sources of imperfect error messages. 0.5.1 July 2002 * a new option: `--max-size BYTES', to limit the maximum file size. * smaller bug fixes. * ftpcopy will no longer reget files when the ftp server has changed it's date representation (/bin/ls style listings). 0.5.0 July 2002 * replaced dns library by latest (and public domain) version. * rewrote the FTP listing parser completely, thereby removing the last piece of code not public domain or *GPL. WARNING: If it would be a big problem for you if ftpcopy regets all files, then be careful and use the -n option the first time you run ftpcopy-0.5.0 (or keep an eye on it while it runs). It's possible that the new parser still has some bugs, especially in the time handling. This didn't hit me, though. * internal cleanup. * parallel make possible. 0.4.10 July 2002 * bugfix: the setenv replacement code crashed. 0.4.9 July 2002 * removed a number of portability issues. * --dry-run now shows what would be deleted, too. * worked around a number of server problems, including an MLSx parse error. 0.4.8 January 2002 * ftpcopy now compiles on Apples OS X. 0.4.7 January 2002 * implemented --rate-limit option for ftpcopy. * fixed a bug in ftpls recursive mode causing it to chop the first character of the directory name. 0.4.6 December 2001 * fixed two compile time problems which probably didn't hurt too many people. * added a --raw option to ftpls to make it print the directory listings without any modifications. * added a --print-dir option to ftpls to make it print directory names before their content. 0.4.5 December 2001 * worked around a ftp server which closed the data connection without having sent a single byte. * reordered and grouped --longhelp and --help output. * added --login-sleep option. It affects the time to sleep after a failed connect or login. The default is the fixed value used before (5). * added --max-deletes option to control how many files will be deleted at the end of a single run. The default is unlimited. 0.4.4 November 2001 * fixed a bug in the MLSD processing. * added --ignore-time option to not download files if the modification time has changed. * added --ignore-size option to not download files if the size has changed. * ftpls will no longer follow endless symbolic link loops. 0.4.3 September 2001 * the workaround for missing utimes() didn't work. Impact: 0.4.2 didn't compile on such systems (fix: trivial). 0.4.2 September 2001 * the package now compiles even if utimes() is not available. * fixed some hypotetical compiler / library incompatibilities. * if ftpcopy detects that a file locally exists, but it is a link on the remote server, then create a link locally. * add support for MLSD (a new listing format, please get and read draft-ietf-ftpext-mlst-13.txt from your favourite internet drafts mirror). 0.4.1 August 2001 * GNU fileutils 3.16 "touch -t" expects different format than newer versions. Impact: Self check failed. Workaround: do not use "touch -t" anymore. 0.4.0 July 2001 * added --mdtm option to ftpcopy as a workaround for servers with traditional ftp listings using time zones other than UTC. * switch to new build/package system. The package now conforms to slashpackage (http://cr.yp.to/slashpackage.html and http://cr.yp.to/slashcommand.html). Distributors: read http://www.ohse.de/uwe/ftpcopy/dist.html. 0.3.9 June 2001 * fixed two file descriptor leaks in ftpcopy. * ftpcopy --bps logs the transfer rates after successful downloads. 0.3.8 May 2001 * added a --timeout option to ftpls and ftpcopy. * don't allow the FTP server do redirect PASV to other hosts or ports < 1024 (with the exception of port 20). * added a --tolower option to ftpcopy, to change all local file and directory names to lowercase. * fixed some error messages. * added a --recursive option to ftpls. * temporary files are created in the target directory. * added a --force-select option to ftpcopy and ftpls to allow them to be used with the socks5 reference implementation, which does not support the poll system call. Note: the clients are not, and will never, socks-friendly. They need a directly reachable DNS resolver. This option just allows them to work with runsocks. 0.3.7 April 2001 * fixed a bug in the handling of the top level remote and local directory. spotted by . * removed the --remove-dir and --keep-dir options from ftpcopy. The behaviour of --remove-dir is now default. --keep-dir is gone, and --remove-dir is the right way to do things anyway. * fixed ftpcopy behaviour in case a file has been changed into a directory or vice versa. It used to stop with an error message, now it does the right thing. * added a testsuite. Read more about this in the INSTALL file. * fixed a number of bugs. Too many, to be honest, but none of them seems to have hurt anybody before. See ChangeLog. 0.3.6 March 2001 * added --dry-run option. * fixed, once again, the output of --help, --version and error messages. * ftpcopy failed to copy an initial remote directory on a wu-ftpd server if that directory contained exactly one file. ftpcopy also failed to copy empty directories. * ftpcopy didn't create the local directory if the first entity to be copied might have been a file. * ftpcopy no longer uses lstat to compare file size and date during downloads. stat() is more appropriate. (Spotted by Nagy Erno a long time ago) * implemented a --interactive option in ftpcopy and ftpls. ftpls will read the directory to be listed from the standard input. ftpcopy will read both the remote directory to be copied and the local directory which shall contain the copy from stdin, on directory on each line. Both programs exit on end-of-file. 0.3.5 February 2001 * fixed output of --version and error messages. (this didn't hit everyone) * documented ftpcopys default of the local directory to the current directory. * made that default only apply if the "-n" option is used. NOTE: if you didn't specify a target directory and didn't use the "-n" option before then you need to add a "." argument now. This change was done to make sure that "ftpcopy ftp://whereever/" doesn't eat your home directory if you happen to be in that now. You can override this security check by providing a "." argument. 0.3.4 January 2001 * Fixed a file system portability problem. Impact: wrong timestamps on mirrors. Thanks to Felix von Leitner .$ * implemented option to deal with FTP "ACCT". 0.3.3 October 2000 * No validity check on remote files names was done. Impact: security breach if the FTP server uses names like ../../../../etc/passwd. Solution: ignore files with / in the name. Note: don't run ftpcopy as root, anyway. * The programs try to deal more nicely with ^z. * There's a mailing list for ftpcopy. To subscribe send mail to ftpcopy-subscribe@lists.ohse.de. 0.3.2 September 2000 * don't kill old proftpd servers, don't waste bandwithd. 0.3.1 July 2000 * understands the listing format of ftp.nai.com. * a number of environment variables may influence where "make install" puts the files. See http://www.ohse.de/uwe/uoinstall.html for details. * ftpcopy logged empty wildcard expression in case of exclusion. 0.3.0 July 2000 * the tools can be told to not log in (--user=""). * a new script, "ftpcp", acts like `ftpcopy -n "$@"' * bugfix: directory deletions didn't work. * new option: --include (like and unlike --exclude) * new option: --list-options XXX for options to be given to the list commands. * new option: --tries (maximum number of connect and log in attempts). 0.2.2 February 2000 * portability enhancements. * reduced package size by not using autoconf & automake anymore. * ftpcopy now works if the path to the target is a relative one (that is, "ftpcopy ... ./newdir" no works). * ftpls can now be used not only to list directories, but also to list files. 0.2.0 February 2000 * portability enhancements. * bug fixes. 0.1.3 January 2000 * new program ftpls * ftpcopy now understands URLs. * ftpcopy doesn't need a local directory anymore, it tries to save the file in the current directory. * ftpcopy: a new option "-m / --max-days" to restricted downloading to files not older than a given amount of days. * ftpcopy: a new option "-x / --exclude", may be used to stop downloading of files matching a wildcard, or entering directories matching a wildcard. * some interoperability fixes (traditional FTP servers). 2000-01-14 Uwe Ohse * Release 0.1.2 * ftpcopy.c: implemented option to deal with symbolic links on broken ftp servers. implemented option to only create the directory hierarchie (together with the option mentioned above it will also create symbolic links). deal with multiline FTP responses. fixed a bug in the symlink creation function (used by EPLF and traditional stuff). use null terminated strings everywhere. 2000-01-13 Uwe Ohse * Release 0.1.1 (0.1.0 was used internally) 2000-01-12 Uwe Ohse * internal Release 0.1.0