mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-24 14:55:46 -04:00
Tweak stderr handling for older BackupPC versions
This makes the default for a protocol-28 server process be --stderr=client instead of --stderr=errors. See rsync's github issue #95.
This commit is contained in:
3
NEWS.md
3
NEWS.md
@@ -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:
|
||||
|
||||
5
compat.c
5
compat.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user