1999-12-04 Finn Arne Gangstad * Makefile.in (VER): Made version 0.8.4 * Added timeout for timezone testing (so it won't hang eternally) 1999-09-10 Finn Arne Gangstad * Makefile.in (VER): Made version 0.8.4pre13 * configure.in (SET_CFLAGS): Don't set -Wtraditional when using gcc * Makefile.in (VER): Made version 0.8.4pre12 * configure.in: link with -lm if necessary for fabs * configure.in: additional check on RETSIGTYPE to make signal handlers only return values if RETSIGTYPE is != void 1999-09-09 Finn Arne Gangstad * Makefile.in (VER): Made version 0.8.4pre11 * fmirror.c: Made lookup_hostname and Date2Min static. Changed type of argv to char *const * 1999-06-18 Finn Arne Gangstad * Makefile.in (all): Made version 0.8.4pre10 1999-06-18 Finn Arne Gangstad * fmirror.c (handle_dir_listing): Merged patch from . Missing timeout detection when getting ls-listing could cause fmirror to hang indefinitely. Sat May 29 08:29:27 1999 Arne Henrik Juul * fmirror.c: Make and use new OPT_SET_LOG macro. Change log_lstat function name to avoid confusion. Convert running output to use log_eta and log_hashes. Always log what's mirrored (from and to). Make findtz more robust in dir-walking code. Move default setting of logging options to new function, called after user has gotten the chance to tweak various parameters. 1999-01-25 Arne Henrik Juul * fmirror.c: Actually make the non-MDTM case work again, and restructure a bit to get correct logging as well. 1999-01-24 Finn Arne Gangstad * Makefile.in (VER): Made version 0.8.4pre8 1999-01-24 Arne Henrik Juul * fmirror.c: new option -T (remotetz) to specify timezone * fmirror.1: Added doc for "remotetz" option 1999-01-18 Finn Arne Gangstad * Makefile.in (VER): Made version 0.8.4pre7 Sun Jan 17 22:35:00 1999 Arne Henrik Juul * Makefile.in: Bump version number here instead. Compile via .o file to ease linking with extra libraries. Allow CFLAGS command-line override per GNU standards. Remove obsolete comment. * fmirror.c: fix find_timezone to be smarter and fall-back gracefully when it fails. Implement options and configuration file keywords for use_mdtm, dircmd_tz, and log_findtz. Reorganize the logic for comparing time stamps, modes and lengths to make -R option actually work. Don't be so verbose about the timezone/MDTM by default. * fmirror.1: Document new options. Fix some typos. Update copyrights. 1999-01-15 Finn Arne Gangstad * Makefile (VER): Made version 0.8.4pre6 * fmirror.c: Merged mdtm support from Minor log cleanups. 1998-12-16 Finn Arne Gangstad * fmirror.c (handle_ftp_transfer): permissions were logged wrongly if file_and_mask or file_or_mask changed the permission. (do_mirror): retry the initial connect a configurable number of times with configurable delay between connects (for busy servers) (reconnect_timeout, reconnect_retries): new config variables (parse_args): Exit if stray command line params are detected * Makefile.in (VER): Made version 0.8.4pre4 * fmirror.c (get_input): cleaned up ALRM-handling a bit. (do_mirror): don't send passwords unless it's set or asked for (make_connected_socket): Code cleanup: One function to make all connected sockets using the right timeouts and retries. (accept_connection): Code cleanup: One function to accept connections using the right timeouts. (make_passive_connection): Code cleanup: Opening passive connections used more than once, put into a function. * INSTALL: compile & install instructions * configure.in, Makefile.in, configure, install.sh: autoconf setup * Makefile (VER): Made version 0.8.4pre3 * fmirror.1: Updated manpage * fmirror.c: Merged a patch from Nicolai, added input_timeout, connect_timeout and connect_retries. Also added some more timeout checks to avoid hanging sessions. 1998-12-12 Finn Arne Gangstad * Makefile (VER): Made version 0.8.4pre2 * fmirror.c (utc_mktime): New function to generate UTC timestamps. (logit): use gcc __attribute__ to trap bad params. Fixed some log statements. 1998-12-10 Finn Arne Gangstad * Makefile (VER): Made version 0.8.4pre1 * fmirror.c: #include (MY_MAX): renamed MAX to MY_MAX to avoid conflicts (mkdir_mode): New function to create directories with correct modes, fixes Debian bug report #28062 * New config-option: keep_newer (-k). Don't download files unless they are newer * New config-option: reset_times (-R). Set modification times of local files that have different timestamps than remote files. * Output format changed a bit for normal interactive use Thu Aug 6 00:34:21 1998 Finn Arne Gangstad * made 0.8.4beta (0.8.4beta-pre1 seemed stable and was just renamed) Mon Aug 3 18:09:38 1998 Finn Arne Gangstad * OOPS: in non-passive mode, the retrieval of ls listings would be killed after 70 seconds. fixed. * renamed changelog to Changelog * Improved logic to detect what year a file's modification date is if it is listed without year in ls-listing * Files that were created in newly made directories were created with mode 0 instead of 0200. fixed. * Don't fflush the tempfile before rewinding it (if disk is full, it may not trigger before the fflush, so better avoid it) * Fixed some typos in log statements Tue Apr 28 13:15:51 1998 Finn Arne Gangstad * Made 0.8.4alpha * Updated documentation (man page & fmirror -h) * Added verbosity level (-V option) to give less verbose output suitable for cron jobs etc. * Started work on finer granularity of logging * log_timestamp option is in, if 0 disable timestamps * bugfix: changed symlinks are now actually changed 11 Dec 1997 (ver 0.8.3 beta) The .in.xxx files are made with permission 0200 instead of 0, to avoid failure next time if fmirror dies during mirroring. Erroneous deletion of files in top directory fixed 6 Dec 1997 (ver 0.8.3 alpha) Updated man-page a bit Reformatted comments Removed setsockopts that set send and receive buffers Initial support for reget (not functional) - new option "try_reget" Filenames and directory commands containing "%" will now work Unneeded complexity in make_hash_value() removed Hash-table speeded up and tuned a bit (add_to_hash(), del_from_hash()) Obscure bug leading to needless reallocing of hash table fixed Multiple spaces allowed before inclusion and exclusion rules Directories containing more than one space would confuse parse_filename(). Improved the new-directory detection. Filenames or directory names starting with space should now work 13 Oct (ver 0.8.2) Default loglevel set to 3 (was 2) Now keeps track of total bytes targeted for mirror and estimates the time left to completion. 19 Sep 1997 (ver 0.8.1 alpha) Added -F (pidfile) option - save the pid of fmirror to a file Passive mode default to off New option -S (passive) for passive mode 19 Sep 1997 (ver 0.8 alpha) Some doc fixes New option -N (nodel) : don't delete local files. Workaround for ftp servers that have multi-line welcome messages without the 4th char on the line being '-' Support for passive mode File descriptor leak in certain error conditions fixed New flag on include and exclude rules 'n' - don't delete a file/dir if this rule matches and the file would otherwise be deleted. Daylight savings time handling turned _off_. Caused some problems with files that had impossible times. 16 Mar 1997: (ver 0.7alpha) Fmirror can now decompress a file-listing that is received. New options, with config-file equivalents in (), default values in []: -z (compressed): decompress file listing -x (decompressor) : name of decompressor program [gzip] -o (decompressor-opt) : options to decompressor [-dc] In order to get a file-list without listing directly, specify a dir-command like this (see redhat.conf for an example): -c (dircmd) : use as directory command [LIST -lgRa] Other new options: -A (file_and_mask) : and-mask for file permissions [0111] -O (file_or_mask) : or-mask for file permissions [0444] -p (port) : port number of remote ftp server [21] -m (dirmode) : permission dirs should be created with [0755] -C : Parse as if it was a line in a config file -e (exclude) add an exclude-entry. -i (include) add an include-entry. -t (timefuzz) Allow files to differ by up to seconds [0]. The example configuration files now include better default excludes. Temporary files are now named .in.* instead of *.__IN__, and are created with permissions 0000. They are also chmoded and the date is updated before they are renamed, so you never risk giving out bogus dates or permissions. Fmirror now handles ls-listings with or without group-information. Missing files are printed on loglevel 3 for consistency. Fmirror understands octal (starting with 0), decimal, and hexadecimal numbers (starting with 0x) when specifying permissions etc. Inverted regex matches are in, a new option 'x' can be used in regex options. The meaning then becomes 'include/exclude anything NOT matching '. This is most useful for excludes. config-file now can use space or tab as whitespace anywhere. Previously tab was required in some places. Some portability changes are in, makes it easier to compile on older oses. File descriptor and memory leak fixed when PORT command failed. Filenames and pathnames are guaranteted _not_ to start with "./" when being matched gainst regex rules even if the remote ls gives listings that start with "./". Directories will always get "/" appended before being matches against the regex rules, so you can do "exclude p (^|/)old/" to exclude directories named "old" and everything in them, without excluding files named "old". 27 Jan 1997: (ver 0.6) Forgot to clear hash-table of files to be deleted, resulting in lots of spam about files it wanted to delete that it couldn't find. 18 Jan 1997: (ver 0.6beta2) excluded directories made it whine and exit, fixed. 18 Jan 1997: (ver 0.6beta) changelog is now in a more reasonable order. default username works fmirror will now delete files itself, do __NOT__ run a find after fmirror has run to delete files, fmirror no longer updates ctime of all files. 28 Jun 1996: (ver 0.5) Local ip-address is fetched in a better way, to use the right address if the host has more than one interface and only one is accessible from the outside. Time comparison of remote timestamps didn't work properly in all cases Some log-statements had wrong types for passed values (short/int etc) Added SYST-command in startup for easier tracking of problems Now checks for timeouts when getting remote files so it isn't stuck forever. Incorrectly ended with exit(0) if remote hostname could not be found, which caused massive deletion of files when remote nameserver was dead. 13 mar 1996: (ver 0.4) Major code cleanups. Big functions split into nice small ones. Bugs fixed: - Directories replaced by files/symlinks were not deleted. - the -v option didn't work properly (duh) - the fuzzy date-matching didn't work at all. fixed. 17 feb 1996: (ver 0.3) Error messages rewritten to give better messages. Some cleanups Date matching on files older than 2 months is now a bit fuzzy, since ls only has day resolution for old files. Prevents files from being mirrorded twice in their lifetime. 6 dec 1995: (ver 0.2) Directory exclusion partly fixed. All leading exludes are now applied to directories as well, but as soon as one include is encountered, further exlucde have no effect on directory-creation. ctime is now set for directories and symlinks as well, so find can be used to delete all old files. Now uses a separate FILE for inut and output, to solve the problems using only one caused on a lot of OSes. 20 nov 1995: Fixed a bug with ls-list parsing, if a directory has a link count of more than 99, the ls program in the other end sometimes forgets to put a space before linkcount. exit(-1) changed to exit(0) if a partition is full, so that mirror isn't run again immediately (with the normal while ! fmirror ; do sleep 30 ; done )