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
Don't mention when the file-list is first allocated, just when it
[rsync/rsync.git]
/
flist.c
diff --git
a/flist.c
b/flist.c
index
1b021ef
..
7e65582
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-43,8
+43,8
@@
extern int numeric_ids;
extern int cvs_exclude;
extern int recurse;
extern int cvs_exclude;
extern int recurse;
+extern int keep_dirs;
extern char curr_dir[MAXPATHLEN];
extern char curr_dir[MAXPATHLEN];
-extern char *files_from;
extern int filesfrom_fd;
extern int one_file_system;
extern int filesfrom_fd;
extern int one_file_system;
@@
-76,7
+76,7
@@
static unsigned int file_struct_len;
static struct file_list *received_flist;
static void clean_flist(struct file_list *flist, int strip_root, int no_dups);
static struct file_list *received_flist;
static void clean_flist(struct file_list *flist, int strip_root, int no_dups);
-static void output_flist(struct file_list *flist);
+static void output_flist(struct file_list *flist
, const char *whose_list
);
void init_flist(void)
{
void init_flist(void)
{
@@
-89,7
+89,7
@@
void init_flist(void)
static int show_filelist_p(void)
{
static int show_filelist_p(void)
{
- return verbose &&
(recurse || files_from)
&& !am_server;
+ return verbose &&
keep_dirs
&& !am_server;
}
static void start_filelist_progress(char *kind)
}
static void start_filelist_progress(char *kind)
@@
-317,7
+317,7
@@
void flist_expand(struct file_list *flist)
new_ptr = realloc_array(flist->files, struct file_struct *,
flist->malloced);
new_ptr = realloc_array(flist->files, struct file_struct *,
flist->malloced);
- if (verbose >= 2) {
+ if (verbose >= 2
&& flist->malloced != FLIST_START
) {
rprintf(FINFO, "[%s] expand file_list to %.0f bytes, did%s move\n",
who_am_i(),
(double)sizeof flist->files[0] * flist->malloced,
rprintf(FINFO, "[%s] expand file_list to %.0f bytes, did%s move\n",
who_am_i(),
(double)sizeof flist->files[0] * flist->malloced,
@@
-335,7
+335,7
@@
void send_file_entry(struct file_struct *file, int f, unsigned short base_flags)
unsigned short flags;
static time_t modtime;
static mode_t mode;
unsigned short flags;
static time_t modtime;
static mode_t mode;
- static
u
int64 dev;
+ static int64 dev;
static dev_t rdev;
static uint32 rdev_major;
static uid_t uid;
static dev_t rdev;
static uint32 rdev_major;
static uid_t uid;
@@
-527,7
+527,7
@@
void receive_file_entry(struct file_struct **fptr, unsigned short flags,
{
static time_t modtime;
static mode_t mode;
{
static time_t modtime;
static mode_t mode;
- static
u
int64 dev;
+ static int64 dev;
static dev_t rdev;
static uint32 rdev_major;
static uid_t uid;
static dev_t rdev;
static uint32 rdev_major;
static uid_t uid;
@@
-684,7
+684,7
@@
void receive_file_entry(struct file_struct **fptr, unsigned short flags,
if (preserve_hard_links && protocol_version < 28 && S_ISREG(mode))
flags |= XMIT_HAS_IDEV_DATA;
if (flags & XMIT_HAS_IDEV_DATA) {
if (preserve_hard_links && protocol_version < 28 && S_ISREG(mode))
flags |= XMIT_HAS_IDEV_DATA;
if (flags & XMIT_HAS_IDEV_DATA) {
-
u
int64 inode;
+ int64 inode;
if (protocol_version < 26) {
dev = read_int(f);
inode = read_int(f);
if (protocol_version < 26) {
dev = read_int(f);
inode = read_int(f);
@@
-804,7
+804,7
@@
struct file_struct *make_file(char *fname, struct file_list *flist,
if (exclude_level == NO_EXCLUDES)
goto skip_excludes;
if (exclude_level == NO_EXCLUDES)
goto skip_excludes;
- if (S_ISDIR(st.st_mode) && !
recurse && !files_from
) {
+ if (S_ISDIR(st.st_mode) && !
keep_dirs
) {
rprintf(FINFO, "skipping directory %s\n", thisname);
return NULL;
}
rprintf(FINFO, "skipping directory %s\n", thisname);
return NULL;
}
@@
-1043,9
+1043,9
@@
static void send_directory(int f, struct file_list *flist, char *dir)
if (dname[0] == '.' && (dname[1] == '\0'
|| (dname[1] == '.' && dname[2] == '\0')))
continue;
if (dname[0] == '.' && (dname[1] == '\0'
|| (dname[1] == '.' && dname[2] == '\0')))
continue;
- if (strlcpy(p, dname, MAXPATHLEN - offset) < MAXPATHLEN - offset)
+ if (strlcpy(p, dname, MAXPATHLEN - offset) < MAXPATHLEN - offset)
{
send_file_name(f, flist, fname, recurse, 0);
send_file_name(f, flist, fname, recurse, 0);
- else {
+
}
else {
io_error |= IOERR_GENERAL;
rprintf(FINFO,
"cannot send long-named file %s\n",
io_error |= IOERR_GENERAL;
rprintf(FINFO,
"cannot send long-named file %s\n",
@@
-1135,7
+1135,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
continue;
}
continue;
}
- if (S_ISDIR(st.st_mode) && !
recurse && !files_from
) {
+ if (S_ISDIR(st.st_mode) && !
keep_dirs
) {
rprintf(FINFO, "skipping directory %s\n", fname);
continue;
}
rprintf(FINFO, "skipping directory %s\n", fname);
continue;
}
@@
-1167,21
+1167,17
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
}
*p = '/';
if (fn != p || (*lp && *lp != '/')) {
}
*p = '/';
if (fn != p || (*lp && *lp != '/')) {
- int
copy_links_saved
= copy_links;
- int
recurse_saved = recurse
;
+ int
save_copy_links
= copy_links;
+ int
save_keep_dirs = keep_dirs
;
copy_links = copy_unsafe_links;
copy_links = copy_unsafe_links;
- /* set recurse to 1 to prevent make_file
- * from ignoring directory, but still
- * turn off the recursive parameter to
- * send_file_name */
- recurse = 1;
+ keep_dirs = 1;
while ((slash = strchr(slash+1, '/')) != 0) {
*slash = 0;
send_file_name(f, flist, fname, 0, 0);
*slash = '/';
}
while ((slash = strchr(slash+1, '/')) != 0) {
*slash = 0;
send_file_name(f, flist, fname, 0, 0);
*slash = '/';
}
- copy_links =
copy_links_saved
;
-
recurse = recurse_saved
;
+ copy_links =
save_copy_links
;
+
keep_dirs = save_keep_dirs
;
*p = 0;
strlcpy(lastpath, fname, sizeof lastpath);
*p = '/';
*p = 0;
strlcpy(lastpath, fname, sizeof lastpath);
*p = '/';
@@
-1257,7
+1253,7
@@
struct file_list *send_file_list(int f, int argc, char *argv[])
}
if (verbose > 3)
}
if (verbose > 3)
- output_flist(flist);
+ output_flist(flist
, f < 0 ? "delete" : who_am_i()
);
if (verbose > 2)
rprintf(FINFO, "send_file_list done\n");
if (verbose > 2)
rprintf(FINFO, "send_file_list done\n");
@@
-1331,7
+1327,7
@@
struct file_list *recv_file_list(int f)
}
if (verbose > 3)
}
if (verbose > 3)
- output_flist(flist);
+ output_flist(flist
, who_am_i()
);
if (list_only) {
int i;
if (list_only) {
int i;
@@
-1507,7
+1503,7
@@
static void clean_flist(struct file_list *flist, int strip_root, int no_dups)
}
}
}
}
-static void output_flist(struct file_list *flist)
+static void output_flist(struct file_list *flist
, const char *whose_list
)
{
char uidbuf[16], gidbuf[16];
struct file_struct *file;
{
char uidbuf[16], gidbuf[16];
struct file_struct *file;
@@
-1524,7
+1520,7
@@
static void output_flist(struct file_list *flist)
else
*gidbuf = '\0';
rprintf(FINFO, "[%s] i=%d %s %s %s mode=0%o len=%.0f%s%s\n",
else
*gidbuf = '\0';
rprintf(FINFO, "[%s] i=%d %s %s %s mode=0%o len=%.0f%s%s\n",
- who
_am_i()
, i, NS(file->basedir), NS(file->dirname),
+ who
se_list
, i, NS(file->basedir), NS(file->dirname),
NS(file->basename), (int)file->mode,
(double)file->length, uidbuf, gidbuf);
}
NS(file->basename), (int)file->mode,
(double)file->length, uidbuf, gidbuf);
}