X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/f6c3b30060864f00f4df7078fe5ae3bc10eb1caa..36ae7f0bb8bdad791108429219eff845c5732eca:/time-limit.diff diff --git a/time-limit.diff b/time-limit.diff index 1556a06..7351306 100644 --- a/time-limit.diff +++ b/time-limit.diff @@ -3,24 +3,23 @@ to be simpler and more efficient by Wayne Davison. Do we need configure support for mktime()? ---- orig/io.c 2004-07-15 02:21:10 -+++ io.c 2004-07-03 20:23:22 -@@ -44,6 +44,7 @@ static int io_multiplexing_in; - static int multiplex_in_fd = -1; - static int multiplex_out_fd = -1; - static time_t last_io; +--- orig/io.c 2005-08-17 06:45:07 ++++ io.c 2005-05-19 09:01:27 +@@ -57,6 +57,7 @@ extern int remove_sent_files; + extern int preserve_hard_links; + extern char *filesfrom_host; + extern struct stats stats; +extern time_t stop_at_utime; - static int no_flush; + extern struct file_list *the_file_list; - extern int bwlimit; -@@ -134,16 +135,21 @@ static void check_timeout(void) + const char phase_unknown[] = "unknown"; +@@ -165,16 +166,24 @@ static void check_timeout(void) { time_t t; -- if (!io_timeout) -+ if (!io_timeout && !stop_at_utime) - return; - ++ if ((!io_timeout || ignore_timeout) && !stop_at_utime) ++ return; ++ + t = time(NULL); + + if (stop_at_utime && t >= stop_at_utime) { @@ -28,56 +27,59 @@ Do we need configure support for mktime()? + exit_cleanup(RERR_TIMEOUT); + } + - if (!last_io) { -- last_io = time(NULL); -+ last_io = t; + if (!io_timeout || ignore_timeout) + return; + + if (!last_io_in) { +- last_io_in = time(NULL); ++ last_io_in = t; return; } - t = time(NULL); - - if (last_io && io_timeout && (t-last_io) >= io_timeout) { + if (t - last_io_in >= io_timeout) { if (!am_server && !am_daemon) { - rprintf(FERROR, "io timeout after %d seconds - exiting\n", ---- orig/options.c 2004-07-16 20:07:22 -+++ options.c 2004-07-15 17:06:09 -@@ -96,6 +96,7 @@ int blocking_io = -1; - int checksum_seed = 0; + rprintf(FERROR, "io timeout after %d seconds -- exiting\n", +--- orig/options.c 2005-11-15 07:01:03 ++++ options.c 2005-08-27 21:27:57 +@@ -110,6 +110,7 @@ int checksum_seed = 0; int inplace = 0; - unsigned int block_size = 0; + int delay_updates = 0; + long block_size = 0; /* "long" because popt can't set an int32. */ +time_t stop_at_utime = 0; /** Network address family. **/ -@@ -298,6 +299,8 @@ void usage(enum logcode F) - rprintf(F," --log-format=FORMAT log file transfers using specified format\n"); - rprintf(F," --password-file=FILE get password from FILE\n"); - rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n"); +@@ -355,6 +356,8 @@ void usage(enum logcode F) + rprintf(F," --password-file=FILE read password from FILE\n"); + rprintf(F," --list-only list the files instead of copying them\n"); + rprintf(F," --bwlimit=KBPS limit I/O bandwidth; KBytes per second\n"); + rprintf(F," --stop-at=y-m-dTh:m Stop rsync at year-month-dayThour:minute\n"); + rprintf(F," --time-limit=MINS Stop rsync after MINS minutes have elapsed\n"); - rprintf(F," --write-batch=FILE write a batch to FILE\n"); - rprintf(F," --read-batch=FILE read a batch from FILE\n"); - rprintf(F," --checksum-seed=NUM set block/file checksum seed\n"); -@@ -317,6 +320,7 @@ enum {OPT_VERSION = 1000, OPT_SENDER, OP - OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST, - OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, - OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, + rprintf(F," --write-batch=FILE write a batched update to FILE\n"); + rprintf(F," --only-write-batch=FILE like --write-batch but w/o updating destination\n"); + rprintf(F," --read-batch=FILE read a batched update from FILE\n"); +@@ -375,6 +378,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP + OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP, + OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, + OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE, + OPT_STOP_AT, OPT_TIME_LIMIT, OPT_REFUSED_BASE = 9000}; static struct poptOption long_options[] = { -@@ -390,6 +394,8 @@ static struct poptOption long_options[] - {"port", 0, POPT_ARG_INT, &rsync_port, 0, 0, 0 }, +@@ -476,6 +480,8 @@ static struct poptOption long_options[] {"log-format", 0, POPT_ARG_STRING, &log_format, 0, 0, 0 }, + {"itemize-changes", 'i', POPT_ARG_NONE, &itemize_changes, 0, 0, 0 }, {"bwlimit", 0, POPT_ARG_INT, &bwlimit, 0, 0, 0 }, + {"stop-at", 0, POPT_ARG_STRING, 0, OPT_STOP_AT, 0, 0 }, + {"time-limit", 0, POPT_ARG_STRING, 0, OPT_TIME_LIMIT, 0, 0 }, - {"address", 0, POPT_ARG_STRING, &bind_address, 0, 0, 0 }, + {"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 }, {"backup-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 }, - {"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 }, -@@ -601,6 +607,36 @@ int parse_arguments(int *argc, const cha - return 0; - #endif + {"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 }, +@@ -997,6 +1003,36 @@ int parse_arguments(int *argc, const cha + basis_dir[basis_dir_cnt++] = (char *)arg; + break; + case OPT_STOP_AT: + arg = poptGetOptArg(pc); @@ -111,8 +113,8 @@ Do we need configure support for mktime()? + default: /* A large opt value means that set_refuse_options() - * turned this option off (opt-BASE is its index). */ -@@ -930,6 +966,15 @@ void server_options(char **args,int *arg + * turned this option off. */ +@@ -1523,6 +1559,15 @@ void server_options(char **args,int *arg args[ac++] = arg; } @@ -128,18 +130,18 @@ Do we need configure support for mktime()? if (backup_dir) { args[ac++] = "--backup-dir"; args[ac++] = backup_dir; ---- orig/rsync.yo 2004-07-16 20:07:23 -+++ rsync.yo 2004-07-15 02:44:40 -@@ -348,6 +348,8 @@ verb( - --log-format=FORMAT log file transfers using specified format - --password-file=FILE get password from FILE - --bwlimit=KBPS limit I/O bandwidth, KBytes per second +--- orig/rsync.yo 2005-11-15 07:01:04 ++++ rsync.yo 2005-02-01 10:46:35 +@@ -381,6 +381,8 @@ to the detailed description below for a + --password-file=FILE read password from FILE + --list-only list the files instead of copying them + --bwlimit=KBPS limit I/O bandwidth; KBytes per second + --stop-at=y-m-dTh:m Stop rsync at year-month-dayThour:minute + --time-limit=MINS Stop rsync after MINS minutes have elapsed - --write-batch=FILE write a batch to FILE - --read-batch=FILE read a batch from FILE - --checksum-seed=NUM set block/file checksum seed -@@ -909,6 +911,19 @@ transfer was too fast, it will wait befo + --write-batch=FILE write a batched update to FILE + --only-write-batch=FILE like --write-batch but w/o updating dest + --read-batch=FILE read a batched update from FILE +@@ -1371,6 +1373,19 @@ transfer was too fast, it will wait befo result is an average transfer rate equaling the specified limit. A value of zero specifies no limit. @@ -157,11 +159,11 @@ Do we need configure support for mktime()? +number of minutes rsync will run for. + dit(bf(--write-batch=FILE)) Record a file that can later be applied to - anonther identical destination with --read-batch. See the "BATCH MODE" - section for details. ---- orig/util.c 2004-06-09 21:54:47 + another identical destination with bf(--read-batch). See the "BATCH MODE" + section for details, and also the bf(--only-write-batch) option. +--- orig/util.c 2005-11-12 20:13:05 +++ util.c 2004-07-03 20:23:22 -@@ -125,6 +125,132 @@ void overflow(char *str) +@@ -128,6 +128,132 @@ void overflow_exit(char *str) exit_cleanup(RERR_MALLOC); } @@ -293,4 +295,4 @@ Do we need configure support for mktime()? +} - int set_modtime(char *fname, time_t modtime) + int set_modtime(char *fname, time_t modtime, mode_t mode)