X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/ef5d23ebcd67a59d2f89fbb5004c9ece4cc4d887..64c2cf8fea3287b7f1b4ce2a359dfaf0e2da0ad8:/options.c diff --git a/options.c b/options.c index 49de44c0..4176b328 100644 --- a/options.c +++ b/options.c @@ -67,6 +67,12 @@ int delete_after=0; int only_existing=0; int max_delete=0; int ignore_errors=0; +#ifdef _WIN32 +int modify_window=2; +#else +int modify_window=0; +#endif +int blocking_io=0; char *backup_suffix = BACKUP_SUFFIX; char *tmpdir = NULL; @@ -84,6 +90,9 @@ int quiet = 0; int always_checksum = 0; int list_only = 0; +static int modify_window_set; + + struct in_addr socket_address = {INADDR_ANY}; void usage(enum logcode F) @@ -143,6 +152,7 @@ void usage(enum logcode F) rprintf(F," --timeout=TIME set IO timeout in seconds\n"); rprintf(F," -I, --ignore-times don't exclude files that match length and time\n"); rprintf(F," --size-only only use file size when determining if a file should be transferred\n"); + rprintf(F," --modify-window=NUM Timestamp window (seconds) for file match (default=%d)\n",modify_window); rprintf(F," -T --temp-dir=DIR create temporary files in directory DIR\n"); rprintf(F," --compare-dest=DIR also compare destination files relative to DIR\n"); rprintf(F," -P equivalent to --partial --progress\n"); @@ -156,6 +166,7 @@ void usage(enum logcode F) rprintf(F," --address bind to the specified address\n"); rprintf(F," --config=FILE specify alternate rsyncd.conf file\n"); rprintf(F," --port=PORT specify alternate rsyncd port number\n"); + rprintf(F," --blocking-io use blocking IO for the remote shell\n"); rprintf(F," --stats give some file transfer stats\n"); rprintf(F," --progress show progress during transfer\n"); rprintf(F," --log-format=FORMAT log file transfers using specified format\n"); @@ -176,7 +187,8 @@ enum {OPT_VERSION, OPT_SUFFIX, OPT_SENDER, OPT_SERVER, OPT_EXCLUDE, OPT_COPY_UNSAFE_LINKS, OPT_SAFE_LINKS, OPT_COMPARE_DEST, OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY, OPT_ADDRESS, OPT_DELETE_AFTER, OPT_EXISTING, OPT_MAX_DELETE, OPT_BACKUP_DIR, - OPT_IGNORE_ERRORS, OPT_BWLIMIT}; + OPT_IGNORE_ERRORS, OPT_BWLIMIT, OPT_BLOCKING_IO, + OPT_MODIFY_WINDOW}; static char *short_options = "oblLWHpguDCtcahvqrRIxnSe:B:T:zP"; @@ -198,6 +210,7 @@ static struct option long_options[] = { {"one-file-system",0, 0, 'x'}, {"ignore-times",0, 0, 'I'}, {"size-only", 0, 0, OPT_SIZE_ONLY}, + {"modify-window",1, 0, OPT_MODIFY_WINDOW}, {"help", 0, 0, 'h'}, {"dry-run", 0, 0, 'n'}, {"sparse", 0, 0, 'S'}, @@ -234,6 +247,7 @@ static struct option long_options[] = { {"partial", 0, 0, OPT_PARTIAL}, {"delete-after",0, 0, OPT_DELETE_AFTER}, {"ignore-errors",0, 0, OPT_IGNORE_ERRORS}, + {"blocking-io" ,0, 0, OPT_BLOCKING_IO}, {"config", 1, 0, OPT_CONFIG}, {"port", 1, 0, OPT_PORT}, {"log-format", 1, 0, OPT_LOG_FORMAT}, @@ -328,6 +342,11 @@ int parse_arguments(int argc, char *argv[], int frommain) size_only = 1; break; + case OPT_MODIFY_WINDOW: + modify_window = atoi(optarg); + modify_window_set = 1; + break; + case 'x': one_file_system=1; break; @@ -539,6 +558,10 @@ int parse_arguments(int argc, char *argv[], int frommain) ignore_errors = 1; break; + case OPT_BLOCKING_IO: + blocking_io = 1; + break; + case 'P': do_progress = 1; keep_partial = 1; @@ -591,6 +614,7 @@ void server_options(char **args,int *argc) static char bsize[30]; static char iotime[30]; static char mdelete[30]; + static char mwindow[30]; static char bw[50]; int i, x; @@ -604,6 +628,7 @@ void server_options(char **args,int *argc) argstr[0] = '-'; for (i=0;i