| portab: | work around gcc-3.4 (and suse gcc-3.3.3) regparm incompatability. |
| (noted by Matthias Andree) | |
| bugfix: | ftpcopy --help showed duplicate entries for -4, -6 (Thomas Schwinge). |
| internal: | sync against repository. |
| doc: | install.0.in fixed (forgot "web" in paths) (Thomas Schwinge). |
| version: | 0.6.7 |
| version: | 0.6.6 |
| check: | now tries to find posix UTC timezone, self check should work |
| again on systems using right/UZC as default UTC. | |
| internal: | rewrote canon(), check what it does in self check. |
| internal: | sync against repository, mainly buffer_op_t -> buffer_op rename. |
| This forced some changes in the code. | |
| version: | 0.6.6beta2 |
| ui: | added --eat-leading-spaces option to ftpcopy and ftpls. |
| ui: | added --data-connect-retries option to ftpcopy and ftpls. |
| ui: | added -X, --in-exclude-file option to ftpcopy (idea: duncan brown). |
| doc: | bug: compile/systype should be compile/auto-systype now |
| (noted by Clemens Fischer). | |
| check: | added another 'Alarm signal' workaround. |
| portab: | FreeBSD hat publicfile in just another place (Matthias Andree). |
| bug: | fix ftpls file size output (64bit now). |
| internal: | changed types of lengths used by ftpparse to unsigned. |
| internal: | rename logxxx to do_logxxx. |
| bug: | cleanup symlink handling (suggested by multiple persons). |
| bug: | --tolower was't taken into account for the in/exclude matching |
| (noted by Mike Pastore). | |
| bug: | socket_family.c assumed all systems know AF_INET6. |
| portab: | tr might treat tr -A-Z _a-z as option [find_socket_func.sh] |
| bug: | --raw option doesn't take an argument. [ftpls.c] |
| version: | 0.6.5 |
| bug: | urlparse() was too strict and refused ftp urls w/o trailing path. |
| ui: | ftpls now accepts host names without a remote path. |
| ui: | package.finish ignores already existing directories to allow |
| package.install to be run multiple times. | |
| version: | 0.6.4 |
| internal: | switch to new uogetopt version to generate manuals from the |
| help texts. | |
| internal: | quite a number of library files updated from the repository. |
| bug: | ftpls didn't append a / to directory names in html output, |
| thus creating invalid links. | |
| version: | 0.6.3 |
| package: | package/build: new script. |
| internal: | split iopause.h into fixed and automatically generated parts. |
| internal: | switch to conditionalized premake2 system. |
| version: | 0.6.2 |
| bugfix: | ftpparse ate leading spaces in file names (unix). |
| bugfix: | ftpparse ate leading spaces in file names (msdos, when nt in disguise) |
| both noted by "chip" <demas@gmx.net>. | |
| check: | check these cases. |
| bugfix: | docheck used `pwd` instead of `env - pwd`. Impact: check might fail. |
| version: | 0.6.1 |
| internal: | ftpcopy now sorts the directory listings. impact: self check |
| works on file systems re-ordering the files, too. | |
| ui: | --progress option is now sensitive to the terminal size. |
| bugfix: | make sure that the 100% message for --progress is printed. I didn't |
| really see a need for this, when i coded the initial code. | |
| Impact: surprised users. | |
| check: | removed reasons to clear the environment before running docheck. |
| ui: | the --allow-pasv-ip option and the FTPCOPY_ALLOW_PASV_IP environment |
| variable allow to work around the "illegal redirect" error in | |
| case ftpcopy is used behind a NAT gateway. | |
| Chances: ftpcopy.c,ftpls.c, common.c | |
| internal: | let ftpls use ssort, too. |
| portab: | pdksh may exit after subshell calls when "set -e" is in effect. |
| impact: compilation broken. Workaround by Paul Jarc. | |
| bugfix: | --mdtm didn't work. Impact: bad dates. |
| bugfix: | the result of mdtm was not used correctly. Thanks to Philip Ross. |
| bugfix: | error.h not included in a few socket library files. |
| Imfact: did not compile. | |
| internal: | removed a number of warnings. |
| internal: | removed a number of warnings. |
| change: | DNS library now continues even if the machine does not support the |
| IP protocol needed to reach all name servers. this allows to share | |
| the resolv.conf... | |
| change: | use 127.0.0.1 as nameserver of last resort, too, not only ::1. |
| ui: | more informative "illegal redirect" message. |
| ui: | document -4, -6 options. |
| version: | 0.6.0 |
| ui: | implemented download resume. |
| ui: | implemented progress report. |
| portab: | glibc-2.3 includes stub for futimes(), thus breaking api_futimes. |
| workaround. | |
| internal: | switch to ipv6 enabled dns library. |
| internal: | switch to ipv6 enabled socket library. |
| version: | 0.5.9 - not for release. |
| ui: | added --max-depth option to ftpcopy and ftpls. |
| check: | check this. |
| version: | 0.5.2. |
| internal: | open tempory file using open_excl, not open_trunc anymore. |
| internal: | update bailout.c, bailout.h from the repository. |
| bugfix: | ftp_cc_read did not clear the string before starting. |
| bugfix: | ccread could return both NULL and &('\0') in case of EOF. |
| It now returns NULL. | |
| compat: | added --ascii-listings option to ftpcopy and ftpls. Purpose: Work |
| around FTP servers unable to list long directories in binary mode. | |
| Noted by A. P. Garcia. | |
| check: | check that. |
| ui: | added better handling of shortened remote times to ftpcopy. |
| impact: should solve the "reget after a half year" problem. | |
| No check done, publicfile is just too good for this. | |
| check: | check the --max-size option. |
| version: | 0.5.1 |
| ui: | added --max-size option to ftpcop |
| bugfix: | one case where a directory has turned into a symlink wasn't caught. |
| internal: | change symlink guessing to use new ftpparse features. |
| bugfix: | make a difference between EOF and errors at a few places. |
| internal: | extended auto-systype information. |
| ui: | changed a number of scripts to allow parallel make. |
| internal: | added a number of copyright notices. |
| internal: | replaced dns library by public domain one. |
| internal: | updated LICENSES.LOCAL, LICENSES.HEAD. |
| version: | 0.5.0 (not released) |
| ui: | replaced the ftp listing parser by a rewritten, extended one. |
| check: | check this. |
| internal: | use utcdate2tai where possible, thereby eleminating the need |
| for mktime, thus also eliminating the need for tzset and | |
| setenv("TZ","UTC",...), which was the most broken thing in | |
| ftpcopy anyway. | |
| check: | add check whether ftpparse works as expected. |
| version: | 0.4.10 |
| bugfix: | fixed a crash on systems without setenv. |
| ui: | --dry-run now shows what would be deleted, to. |
| check: | check that. |
| ui: | work around a problem with a wu-2.4.2-VR16(1) server, where |
| it didn't provide a directory listing. impact: ftpcopy stopped. | |
| bugfix: | ftp_cc_read failed to report errors. impact: wrong error message. |
| portab: | do not use setenv directly, use a wrapper (setenv/putenv). |
| portab: | Makefile is now dmake compatible, and possibly even usable with |
| HPUX make. | |
| internal: | updated a number of library files from the repository. |
| version: | 0.4.9 |
| portab: | do not use tm_gmtoff and tm_zone anymore. Noted by a number of |
| users. | |
| portab: | a number of FTP servers sends malformed MLSx responses. This |
| likewise bit a number of users. | |
| portab: | "fi fi" without a ";" between is unportable. Noted by Janos Farkas. |
| version: | 0.4.8 |
| portab: | do not use ${1+$@} anymore, but use $@. /bin/sh on mac os x broke |
| auto-compile.sh. | |
| portab: | redirect linkers stdout to stderr in auto-link.sh. mac os x linker |
| thinks the error messages belong to stdout. | |
| portab: | mac os x needs sys/types.h included before sys/dirent.h. |
| bugfix: | ftpls in recursive mode chopped the first character of the directory |
| name. First noted by Roland Mücke. | |
| version: | 0.4.7 |
| bugfix: | fix missing initialization in --rate-limit option. |
| ui: | added --rate-limit option to ftpcopy. |
| bugfix: | updated fsync.sh and iopause.sh from the repository. |
| impact: no dependency on compile.sh anymore. | |
| ui: | added --raw option to ftpls. |
| ui: | added --print-dir option to ftpls. |
| version: | 0.4.6 |
| internal: | use api_dir instead of dirent.h |
| ui: | reordered and grouped --(long)?help output |
| ui: | added -M, --max-deletes option |
| ui: | --login-sleep option |
| version: | 0.4.5 |
| compat: | some FTP server closed the data connection after a failed |
| RETR ("not a plain file"). | |
| bugfix: | initialentity returned the wrong value after MLST, causing |
| a superfluous RETR command. Impact: failed on the servern | |
| which closed the data connection too early. | |
| Noted by a. Phil Garcia. | |
| bugfix: | ftpls will no longer follow endless symbolic link loops. |
| internal: | updated a number of files from the repository (auto-... change). |
| internal: | adapted docheck (use of compile.sh). |
| bugfix: | mlsx.c prepended space before name. Patch from Matthias Andree. |
| ui: | added options not to download files if the modification time or |
| the file sizes have changed. | |
| doc: | documented that. |
| check: | check that. |
| version: | 0.4.4 |
| version: | 0.4.3 |
| bugfix: | the workaround for missing utimes() didn't work. |
| version: | 0.4.2 |
| ui: | added some information to the ftpcopy --longhelp output. |
| internal: | provide function to read command channel line by line (for MLST) |
| internal: | added code for using MLST on initial entity. |
| bugfix: | MLSx can return 500, means the same as 502. |
| Impact: ftpls and ftpcopy behaved somewhat strangely. | |
| version: | 0.4.2beta2 |
| internal: | updated a number of files from the repository. |
| internal: | changed strhash_t -> strhash. |
| internal: | extended systype output. |
| internal: | more sort_it() from ftpls.c to own file. |
| internal: | cleaned up includes. |
| internal: | compile even if utimes() is not available. |
| ui: | if ftpcopy detects that a file locally exists, but it is a link |
| on the remote server, then create a link locally. | |
| ui: | added support for MLSD. |
| version: | 0.4.2beta1 |
| check: | touch -t YYYYMMDDhhmm.ss doesn't work with GNU fileutils 3.16, |
| it expects a different format. Impact: self check failed. | |
| Workaround: use own touch. | |
| version: | 0.4.1 |
| interal: | updated socket_conn.c socket_htons.c socket_bind.c from repo. |
| ui: | switched to new build / package system. |
| version: | 0.4.0 |
| internal: | updated bailout.c, bailout.h, buffer_put.c, open.h, uint64.h, |
| uogetopt.c, iopause.c from the repository. | |
| internal: | switch ftpls.c to byte_diff, str_len. |
| internal: | switch urlparse.c to str_len. |
| internal: | use noreturn attributes where useful. |
| ui: | added --mdtm switch to ftpcopy. |
| version: | 0.3.10 |
| doc: | s/post/port/ in ftpcopy.1.in, spotted by Jim Thompson |
| <jim@smallworks.com>. | |
| doc: | switched to *roff. |
| ui: | ftpcopy --bps logs the transfer rates. |
| bugfix: | fixed two file descriptor leaks created 2001-05-03 |
| Spotted by <matthias.andree@stud.uni-dortmund.de>. | |
| check: | check for file descriptor leak problems. |
| version: | 0.3.9 |
| portab: | socks5 as of socks5-v1.0r11 doesn't include a wrapper for |
| poll, but has one for select influencing internal state in | |
| the SOCKS library. Impact: ftpcopy / ftpls couldn't connect. | |
| Workaround: added an option --force-select to both clients. | |
| doc: | documented --force-select |
| bugfix: | iopause.sh did never turn on poll. (never released that bug) |
| bugfix: | ftpcopy crashed with a null pointer dereference if a high |
| logging level was choosen and the default end (NULL) of | |
| a in/exclude list was reached. | |
| ui: | cd back from sub directories as soon as they are left. |
| impact: temporary files are created in the target directory. | |
| the old behaviour wasn't clean with regards to file system | |
| boundaries. Brought to my attention by Matthias Andree | |
| <matthias.andree@stud.uni-dortmund.de>. | |
| internal: | updated typesize.h from the repository. No impact. |
| internal: | updated gen_scan.h from the repository. No impact. |
| internal: | switched to PD tai and taia libraries. |
| internal: | switched to PD ip4 library. |
| internal: | switched to PD iopause. |
| bug: | printed errno related error messages without reason. Brought to |
| my attention by Matthias Andree <matthias.andree@gmx.de>. | |
| ui: | added --recursive option to ftpls. |
| internal: | switched to PD scan library. |
| internal: | switched to PD fmt library. |
| internal: | switched to PD ndelay. |
| internal: | switched to use more generic host_connect() instead of doconnect(). |
| internal: | switched to PD timeoutconn. |
| internal: | switched to PD error library. |
| internal: | switched to PD readclose library. |
| internal: | switched to PD readwrite.h. |
| internal: | switched to PD uint library. |
| internal: | switched copyright of byte* to PD. |
| internal: | updated uoinstall from the repository. |
| internal: | switched to PD buffer library. |
| internal: | switched to PD getln library. |
| ui: | add --tolower option to ftpcopy. |
| doc: | document that. |
| check: | check that. |
| ui: | add --timeout option to ftpcopy and ftpls. |
| doc: | document that. |
| ui: | if the server has more than one IP address then try |
| to connect to all of them before failing. | |
| bugfix: | Only accept PASV IP address if it's in the list returned |
| by the DNS. Only accept port 20 and >= 1024. | |
| Impact: don't allow the server to redirect us to chargen | |
| or something else. | |
| version: | 0.3.8 |
| ui: | ftpls error messages in case too few arguments were given |
| weren't helpful. | |
| doc: | updated TODO. |
| internal: | built an API around futimes/utimes to hide that ugly stuff. |
| bug: | fixed a one byte overrun of a malloc()d buffer in do_symlink. |
| it was there for a long, long time. | |
| impact: unknown. doesn't seem to be exploitable, though. | |
| doc: | updated install.html.in to reflect testsuite |
| doc: | updated ftpcopy.pod: moved --keep-dir and --remove-dir |
| into historical section. | |
| internal: | removed unneeded includes in ftplib.c, ftpls.c and ftpcopy.c. |
| internal: | use wrapper around getcwd. |
| ui: | changed some error messgaes in ftpls. |
| ui: | use absolute paths in ftpls interactive mode, too. |
| check: | improved testsuite. |
| ui: | removed --remove-dir and --keep-dir options in ftpcopy. |
| The behaviour of --remove-dir is now default. | |
| internal: | made remove_dir() in ftpcopy.c more robust. |
| bug: | --directories-only now works again. |
| internal: | restructured loop() by moving code to new functions. |
| ui: | Added more logging to the handling of include/exclude options. |
| bug: | Deal with the case where the remote entity is a directory, but |
| the local one is a symlink, by removing the symlink. | |
| bug: | Try to get more information if the initial entity is a directory. |
| ui: | changed a number of error messages in common.c. |
| ui: | relative remote paths in interactive input are changed into |
| absolute ones. | |
| bug: | Don't crash in interactive/non-url mode due to unset remotedir |
| variable. In interactive/non-url mode no remote directory is | |
| needed. | |
| internal: | removed unneeded flag_silent_retr hack. |
| internal: | updated bailout.[ch]. |
| ui: | ftpcopy sets up bailout library to print "fatal: " in |
| fatal messages. | |
| ui: | changed a number of error messages in doconnect.c. |
| ui: | changed a number of error messages in ftpcopy.c. |
| bug: | ftpcopy exited with an error "wrong initial LIST answer" |
| if the remote target was a file. (introduced yesterday) | |
| bug: | ftpcopy didn't create to local directories for the initial |
| targets as it was supposed to do (at least in some cases) | |
| (bug introduced in 0.3.6) | |
| bug: | ftpcopy now handles a few more cases in which a remote file |
| has turned into a directory or a directory has turned into | |
| a file. | |
| check: | expanded testsuite. |
| internal: | replaced stralloc library by GPLd one. |
| check: | started work on testsuite. |
| bug: | ftpcopy.c: rewrote the special handling of the command line |
| argument. Too many bugs in the old code. | |
| Also fixed misformatted rename error messages. | |
| version: | 0.3.7 |
| bug: | use stat in download(), not lstat. we want to compare the real |
| things. (spotted by Nagy Erno <ned@elte.hu> a long time ago) | |
| ui: | implemented --interactive options in ftpcopy and ftpls. |
| version: | 0.3.6 |
| bug: | 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. | |
| bug: | ftpcopy didn't create local directory if the first entity |
| to be copied was a file. | |
| ui: | ftpcopy.c: added --dry-run option. |
| bug: | bailout_progname() threw away the first character if |
| argv[0] didn't include a /. | |
| internal: | use new uogetopt functions (MINARGS, MAXARGS). |
| internal: | use bailout_progname(). |
| ui: | ftpcopy.c: make help messages more clear. |
| ui: | ftpcopy.c: document default of local-dir to . |
| ui: | ftpcopy.c: make that default only apply if -n is used. |
| doc: | document default of local-dir to "." if "-n" is used. |
| version: | 0.3.5 |
| bug: | ftpcopy --version showed "--version" as program name |
| if and only if ftpcopy wasn't calling with an absolute path | |
| in argv[0]. This also affects error messages. | |
| internal: | updated scan_long.c, scan_sign.c, strhash_ente.c, uogetopt.c |
| and uogetopt.h from the repository. | |
| 2001-01.14 Uwe Ohse <uwe@fjoras.ohse.de> | |
| portability: | some version of reiserfs on linux doesn't honor utime() if |
| the function is called before the file is closed. Found | |
| and patched by Felix von Leitner <leitner@fefe.de>. | |
| impact: the date of mirrored files was wrong. | |
| internal: | now actually use futimes() if available.5 |
| internal: | updated socket_tcp.c socket_udp.c strhash_ente.c from the |
| repository. | |
| ui: | implemented "--account" option: send argument to the server |
| if it asks for an ACCT command. impact: common.c, ftpcopy.h | |
| ftpls.c, ftpcopy.c. | |
| version: | 0.3.4 |
| bugfix: | 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. | |
| version: | 0.3.3 |
| internal: | use new strhash version. changed ftpcopy.c to fit. |
| internal: | updated uogetopt from repository. |
| bugfix: | a log message was missing a terminating line feed. |
| bugfix: | timeoutio.h: experimental change for the ^z problem experienced by |
| Matthias Andree <matthias.andree@stud.uni-dortmund.de>. | |
| internal: | updated uogetopt from repository. |
| internal: | updated uoinstall from repository. |
| internal: | removed strlen calls from ftpcopy.c. |
| version: | 0.3.2 |
| doc: | fix spurious comma in ftpcp.pod. (spotted by Matthias Andree) |
| bugfix: | don't flush before \r\n in ftp_cc_write_cmd_s and |
| ftp_cc_write_cmd_ss. Was due to a misunderstanding | |
| of the way buffer_pustflush works. | |
| impact: old proftpd version crash, unneeded TCP traffic. | |
| Spotted by Matthias Andree <matthias.andree@gmx.de>. | |
| internal: | use strhash instead of dynhash. impact: avoid possibly |
| CRC collision problems. | |
| ui: | ftpparse.c didn't know about the format used on at least |
| one IP address behind ftp.nai.com. | |
| internal: | shut up a gcc warning in ftpcopy.c |
| internal: | understands the listing format of ftp.nai.com. |
| bugfix: | used buggy old env_get (didn't hit, due to luck). |
| ui: | oom() exists 111 (bailout.c) |
| internal: | timeoutio.h, open.h: library sync |
| ui: | (uoinstall, premake) a number of make variables |
| may influence the installation. | |
| version: | 0.3.1 |
| bugfix: | ftpcopy logged empty wildcard expression in case of exclusion |
| (spotted by Matthias Andree <ma@dt.e-technik.uni-dortmund.de>). | |
| doc: | fix typo in ftpcopy.pod. (spotted by Matthias Andree) |
| internal: | rewritten to use stralloc, taia.a, buffer, the new socket library. |
| ui: | provide a way to not log in (--user=""). |
| ui: | ftpcp: new script, calls `ftpcopy -n "$@"' |
| ui: | added --tries option. |
| ui: | fixed exit code of ftpcopy, was 1 instead of 0 in case of |
| success. | |
| version: | 0.3.0 |
| bugfix: | directory deletions didn't work. |
| ui: | added --include option. |
| ui: | add option "-L" / "--list-options" to ftpcopy and ftpls. |
| ui: | fix typo in long options of ftpls. |
| bugfix: | ftpls didn't correctly check the result code of the |
| LIST command. | |
| * library function updates (mainly the big uoio cleanup). | |
| * threw out automake / autoconf stuff. | |
| * ftpcopy: target may now be a relative path. | |
| * ftpls: can now list only one file. | |
| * Release 0.2.2 (0.2.1 was internal) | |
| * Release 0.2.0 | |
| * ftpcopy.c: (download) forgot to close the socket if | |
| the server tells us that the file is not available. | |
| * ftpcopy.c: (delete) stopped to work reliably in 0.1.3. Oops. | |
| * uoio.c, uostr.c: library function update. Nothing serious. | |
| * Release 0.1.3 | |
| * ftplib.c: new file containing some functions of ftpcopy.c | |
| * ftpcopy.c: use ftplib.c functions. | |
| understands URLs. | |
| doesn't need a local dir anymore (uses ./something). | |
| * ftpparse.c: ANSIfied it. | |
| * ftpls.c: new program | |
| * ftpcopy.c: new option -m / --max-days to only download files | |
| modified in the last N days. | |
| new option -x / --exclude, implements exclusion list. | |
| added some rmdirs where they seem appropriate. | |
| * uptime.h, uo_now.c, uo_wildmat.h uo_wildmat.c: new files | |
| from the repository. | |
| * ftpcopy.c: close the data connection before reading the servers | |
| final answer. Seems to be needed for some ftp servers (what | |
| does the standard say about that?). | |
| * 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. | |
| * Release 0.1.1 | |
| (0.1.0 was used internally) | |
| * internal Release 0.1.0 | |