Do we need configure support for mktime()?
---- orig/io.c 2004-08-02 02:44:26
+--- orig/io.c 2005-02-03 02:04:20
+++ io.c 2004-07-17 15:28:36
-@@ -49,6 +49,7 @@ extern int am_sender;
- extern int eol_nulls;
+@@ -51,6 +51,7 @@ extern int eol_nulls;
+ extern int csum_length;
extern int checksum_seed;
extern int protocol_version;
+extern time_t stop_at_utime;
extern char *remote_filesfrom_file;
extern struct stats stats;
-@@ -135,17 +136,22 @@ static void check_timeout(void)
+@@ -137,17 +138,22 @@ static void check_timeout(void)
{
time_t t;
- if (t - last_io >= io_timeout) {
+ if (io_timeout && t - last_io >= io_timeout) {
if (!am_server && !am_daemon) {
- rprintf(FERROR, "io timeout after %d seconds - exiting\n",
+ rprintf(FERROR, "io timeout after %d seconds -- exiting\n",
(int)(t-last_io));
---- orig/options.c 2004-08-11 23:42:23
-+++ options.c 2004-07-15 17:06:09
-@@ -96,6 +96,7 @@ int blocking_io = -1;
- int checksum_seed = 0;
+--- orig/options.c 2005-02-15 19:27:05
++++ options.c 2005-01-28 19:35:23
+@@ -102,6 +102,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. **/
-@@ -301,6 +302,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");
+@@ -331,6 +332,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");
-@@ -320,6 +323,7 @@ enum {OPT_VERSION = 1000, OPT_SENDER, OP
- OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST,
+ rprintf(F," --write-batch=FILE write a batched update to FILE\n");
+ rprintf(F," --read-batch=FILE read a batched update from FILE\n");
+ #ifdef INET6
+@@ -348,6 +351,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
+ OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
- OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT,
+ OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE,
+ OPT_STOP_AT, OPT_TIME_LIMIT,
OPT_REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
-@@ -394,6 +398,8 @@ static struct poptOption long_options[]
- {"port", 0, POPT_ARG_INT, &rsync_port, 0, 0, 0 },
+@@ -432,6 +436,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-dir", 0, POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
{"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links, 0, 0, 0 },
-@@ -620,6 +626,36 @@ int parse_arguments(int *argc, const cha
- return 0;
- #endif
+ {"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
+@@ -837,6 +843,36 @@ int parse_arguments(int *argc, const cha
+ basis_dir[basis_dir_cnt++] = (char *)arg;
+ break;
+ case OPT_STOP_AT:
+ arg = poptGetOptArg(pc);
+
default:
/* A large opt value means that set_refuse_options()
- * turned this option off (opt-BASE is its index). */
-@@ -995,6 +1031,15 @@ void server_options(char **args,int *arg
+ * turned this option off. */
+@@ -1283,6 +1319,15 @@ void server_options(char **args,int *arg
args[ac++] = arg;
}
if (backup_dir) {
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
---- orig/rsync.yo 2004-08-11 17:26:27
-+++ rsync.yo 2004-07-15 02:44:40
-@@ -349,6 +349,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-02-15 19:27:05
++++ rsync.yo 2005-02-01 10:46:35
+@@ -378,6 +378,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
-@@ -943,6 +945,19 @@ transfer was too fast, it will wait befo
+ --write-batch=FILE write a batched update to FILE
+ --read-batch=FILE read a batched update from FILE
+ --checksum-seed=NUM set block/file checksum seed (advanced)
+@@ -1182,6 +1184,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.
+number of minutes rsync will run for.
+
dit(bf(--write-batch=FILE)) Record a file that can later be applied to
- another identical destination with --read-batch. See the "BATCH MODE"
+ another identical destination with bf(--read-batch). See the "BATCH MODE"
section for details.
---- orig/util.c 2004-08-11 23:42:23
+--- orig/util.c 2005-02-14 02:45:11
+++ util.c 2004-07-03 20:23:22
@@ -126,6 +126,132 @@ void overflow(char *str)
exit_cleanup(RERR_MALLOC);