Fixed a compilation error that crept into the code.
[rsync-patches.git] / time-limit.diff
index 1a7dff3c5687e7e5246ab00fec7cf278d9780090..57ceac55bb28f501abd704ab37d243ffe1350c36 100644 (file)
@@ -3,9 +3,15 @@ to be simpler and more efficient by Wayne Davison.
 
 Do we need configure support for mktime()?
 
---- orig/io.c  2005-03-05 00:25:25
-+++ io.c       2005-03-05 00:32:06
-@@ -56,6 +56,7 @@ extern int remove_sent_files;
+To use this patch, run these commands for a successful build:
+
+    patch -p1 <patches/time-limit.diff
+    ./configure                              (optional if already run)
+    make
+
+--- old/io.c
++++ new/io.c
+@@ -50,6 +50,7 @@ extern int remove_source_files;
  extern int preserve_hard_links;
  extern char *filesfrom_host;
  extern struct stats stats;
@@ -13,7 +19,7 @@ Do we need configure support for mktime()?
  extern struct file_list *the_file_list;
  
  const char phase_unknown[] = "unknown";
-@@ -163,16 +164,24 @@ static void check_timeout(void)
+@@ -166,16 +167,24 @@ static void check_timeout(void)
  {
        time_t t;
  
@@ -30,56 +36,57 @@ Do we need configure support for mktime()?
        if (!io_timeout || ignore_timeout)
                return;
  
-       if (!last_io) {
--              last_io = time(NULL);
-+              last_io = t;
+       if (!last_io_in) {
+-              last_io_in = time(NULL);
++              last_io_in = t;
                return;
        }
  
 -      t = time(NULL);
 -
-       if (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     2005-03-02 09:52:06
-+++ options.c  2005-01-28 19:35:23
-@@ -105,6 +105,7 @@ int checksum_seed = 0;
- int inplace = 0;
- int delay_updates = 0;
- long block_size = 0; /* "long" because popt can't set an int32. */
+--- old/options.c
++++ new/options.c
+@@ -106,6 +106,7 @@ size_t bwlimit_writemax = 0;
+ int ignore_existing = 0;
+ int ignore_non_existing = 0;
+ int need_messages_from_generator = 0;
 +time_t stop_at_utime = 0;
- /** Network address family. **/
-@@ -341,6 +342,8 @@ void usage(enum logcode F)
+ int max_delete = -1;
+ OFF_T max_size = 0;
+ OFF_T min_size = 0;
+@@ -374,6 +375,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 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");
- #ifdef INET6
-@@ -358,6 +361,7 @@ enum {OPT_VERSION = 1000, OPT_DAEMON, OP
-       OPT_FILTER, OPT_COMPARE_DEST, OPT_LINK_DEST,
-       OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW,
-       OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT, OPT_MAX_SIZE,
-+      OPT_STOP_AT, OPT_TIME_LIMIT,
-       OPT_REFUSED_BASE = 9000};
+@@ -395,7 +398,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_CHMOD,
+       OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
+-      OPT_NO_D,
++      OPT_NO_D, OPT_STOP_AT, OPT_TIME_LIMIT,
+       OPT_SERVER, OPT_REFUSED_BASE = 9000};
  
  static struct poptOption long_options[] = {
-@@ -442,6 +446,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 },
+@@ -514,6 +517,8 @@ static struct poptOption long_options[] 
+   {"log-format",       0,  POPT_ARG_STRING, &stdout_format, 0, 0, 0 }, /* DEPRECATED */
+   {"itemize-changes", 'i', POPT_ARG_NONE,   0, 'i', 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 },
+   {"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 },
-   {"read-batch",       0,  POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 },
-@@ -854,6 +860,36 @@ int parse_arguments(int *argc, const cha
-                       basis_dir[basis_dir_cnt++] = (char *)arg;
-                       break;
+   {"suffix",           0,  POPT_ARG_STRING, &backup_suffix, 0, 0, 0 },
+@@ -1087,6 +1092,36 @@ int parse_arguments(int *argc, const cha
+                       usage(FINFO);
+                       exit_cleanup(0);
  
 +              case OPT_STOP_AT:
 +                      arg = poptGetOptArg(pc);
@@ -114,7 +121,7 @@ Do we need configure support for mktime()?
                default:
                        /* A large opt value means that set_refuse_options()
                         * turned this option off. */
-@@ -1344,6 +1380,15 @@ void server_options(char **args,int *arg
+@@ -1646,6 +1681,15 @@ void server_options(char **args,int *arg
                args[ac++] = arg;
        }
  
@@ -130,18 +137,18 @@ Do we need configure support for mktime()?
        if (backup_dir) {
                args[ac++] = "--backup-dir";
                args[ac++] = backup_dir;
---- orig/rsync.yo      2005-03-04 16:13:54
-+++ rsync.yo   2005-02-01 10:46:35
-@@ -377,6 +377,8 @@ to the detailed description below for a 
+--- old/rsync.yo
++++ new/rsync.yo
+@@ -395,6 +395,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 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
-      --checksum-seed=NUM     set block/file checksum seed (advanced)
-@@ -1247,6 +1249,19 @@ transfer was too fast, it will wait befo
+@@ -1746,6 +1748,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.
  
@@ -160,10 +167,10 @@ Do we need configure support for mktime()?
 +
  dit(bf(--write-batch=FILE)) Record a file that can later be applied to
  another identical destination with bf(--read-batch). See the "BATCH MODE"
- section for details.
---- orig/util.c        2005-02-23 02:57:27
-+++ util.c     2004-07-03 20:23:22
-@@ -126,6 +126,132 @@ void overflow(char *str)
+ section for details, and also the bf(--only-write-batch) option.
+--- old/util.c
++++ new/util.c
+@@ -121,6 +121,133 @@ NORETURN void overflow_exit(const char *
        exit_cleanup(RERR_MALLOC);
  }
  
@@ -191,13 +198,13 @@ Do we need configure support for mktime()?
 +      } else
 +              in_date = 1;
 +      for ( ; ; cp++) {
-+              if (!isdigit(*cp))
++              if (!isDigit(cp))
 +                      return -1;
 +
 +              n = 0;
 +              do {
 +                      n = n * 10 + *cp++ - '0';
-+              } while (isdigit(*cp));
++              } while (isDigit(cp));
 +
 +              if (*cp == ':')
 +                      in_date = 0;
@@ -293,6 +300,7 @@ Do we need configure support for mktime()?
 +      }
 +      return val;
 +}
- int set_modtime(char *fname, time_t modtime)
++
+ int set_modtime(const char *fname, time_t modtime, mode_t mode)
+ {
+ #if !defined HAVE_LUTIMES || !defined HAVE_UTIMES