Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed --delete-delay by making the fprintf() output an unsigned short
[rsync/rsync.git]
/
batch.c
diff --git
a/batch.c
b/batch.c
index
121e34f
..
b1859fc
100644
(file)
--- a/
batch.c
+++ b/
batch.c
@@
-36,16
+36,19
@@
extern int always_checksum;
extern int do_compression;
extern int def_compress_level;
extern int protocol_version;
extern int do_compression;
extern int def_compress_level;
extern int protocol_version;
+extern int flist_extra_cnt;
extern char *batch_name;
extern struct filter_list_struct filter_list;
extern char *batch_name;
extern struct filter_list_struct filter_list;
+static int tweaked_preserve_uid;
+static int tweaked_preserve_gid;
static int tweaked_compress_level;
static int *flag_ptr[] = {
&recurse, /* 0 */
static int tweaked_compress_level;
static int *flag_ptr[] = {
&recurse, /* 0 */
- &
preserve_uid,
/* 1 */
- &
preserve_gid,
/* 2 */
+ &
tweaked_preserve_uid,
/* 1 */
+ &
tweaked_preserve_gid,
/* 2 */
&preserve_links, /* 3 */
&preserve_devices, /* 4 */
&preserve_hard_links, /* 5 */
&preserve_links, /* 3 */
&preserve_devices, /* 4 */
&preserve_hard_links, /* 5 */
@@
-72,6
+75,8
@@
void write_stream_flags(int fd)
{
int i, flags;
{
int i, flags;
+ tweaked_preserve_uid = preserve_uid != 0;
+ tweaked_preserve_gid = preserve_gid != 0;
#if Z_DEFAULT_COMPRESSION == -1
tweaked_compress_level = do_compression ? def_compress_level + 2 : 0;
#else
#if Z_DEFAULT_COMPRESSION == -1
tweaked_compress_level = do_compression ? def_compress_level + 2 : 0;
#else
@@
-113,6
+118,16
@@
void read_stream_flags(int fd)
xfer_dirs = 0;
}
xfer_dirs = 0;
}
+ if (tweaked_preserve_uid) {
+ if (!preserve_uid)
+ preserve_uid = ++flist_extra_cnt;
+ } else
+ preserve_uid = 0;
+ if (tweaked_preserve_gid) {
+ if (!preserve_gid)
+ preserve_gid = ++flist_extra_cnt;
+ } else
+ preserve_gid = 0;
if (tweaked_compress_level == 0 || tweaked_compress_level == 2)
do_compression = 0;
else {
if (tweaked_compress_level == 0 || tweaked_compress_level == 2)
do_compression = 0;
else {