diff options
-rw-r--r-- | NEWS.md | 3 | ||||
-rw-r--r-- | compat.c | 5 | ||||
-rw-r--r-- | options.c | 5 |
3 files changed, 13 insertions, 0 deletions
@@ -130,6 +130,9 @@ - Work around a glibc bug where lchmod() breaks in a chroot w/o /proc mounted. + - Try to support a client that sent a remote rsync a wacko stderr file handle + (such as an older File::RsyncP perl library used by BackupPC). + - Some manpage improvements. ### PACKAGING RELATED: @@ -52,6 +52,8 @@ extern int need_messages_from_generator; extern int delete_mode, delete_before, delete_during, delete_after; extern int do_compression; extern int do_compression_level; +extern int saw_stderr_opt; +extern int msgs2stderr; extern char *shell_cmd; extern char *partial_dir; extern char *files_from; @@ -622,6 +624,9 @@ void setup_protocol(int f_out,int f_in) if (read_batch) check_batch_flags(); + if (!saw_stderr_opt && protocol_version <= 28 && am_server) + msgs2stderr = 0; /* The client side may not have stderr setup for us. */ + #ifndef SUPPORT_PREALLOCATION if (preallocate_files && !am_sender) { rprintf(FERROR, "preallocation is not supported on this %s\n", @@ -91,6 +91,7 @@ int implied_dirs = 1; int missing_args = 0; /* 0 = FERROR_XFER, 1 = ignore, 2 = delete */ int numeric_ids = 0; int msgs2stderr = 2; /* Default: send errors to stderr for local & remote-shell transfers */ +int saw_stderr_opt = 0; int allow_8bit_chars = 0; int force_delete = 0; int io_timeout = 0; @@ -1882,6 +1883,7 @@ int parse_arguments(int *argc_p, const char ***argv_p) "--stderr mode \"%s\" is not one of errors, all, or client\n", arg); return 0; } + saw_stderr_opt = 1; break; } @@ -1900,6 +1902,9 @@ int parse_arguments(int *argc_p, const char ***argv_p) } } + if (msgs2stderr != 2) + saw_stderr_opt = 1; + if (version_opt_cnt) { print_rsync_version(FINFO); exit_cleanup(0); |