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
Warn if 64bit value sent or received on system that doesn't
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
dbd8bfd
..
d50e67a
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-297,9
+297,10
@@
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
}
}
-/* main routine for receiver process. Receiver process runs on the
- same host as the generator process. */
-
+/**
+ * main routine for receiver process.
+ *
+ * Receiver process runs on the same host as the generator process. */
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
{
int fd1,fd2;
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
{
int fd1,fd2;
@@
-317,6
+318,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
extern struct stats stats;
extern int preserve_perms;
extern int delete_after;
extern struct stats stats;
extern int preserve_perms;
extern int delete_after;
+ extern int orig_umask;
struct stats initial_stats;
if (verbose > 2) {
struct stats initial_stats;
if (verbose > 2) {
@@
-355,8
+357,8
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
fname = local_name;
if (dry_run) {
fname = local_name;
if (dry_run) {
- if (!am_server
) {
-
log_transfer(file
, fname);
+ if (!am_server
&& verbose) { /* log transfer */
+
rprintf(FINFO, "%s\n"
, fname);
}
continue;
}
}
continue;
}
@@
-394,8
+396,8
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
}
if (fd1 != -1 && !preserve_perms) {
}
if (fd1 != -1 && !preserve_perms) {
- /* if the file exists already and we aren't p
er
serving
- p
res
missions then act as though the remote end sent
+ /* if the file exists already and we aren't p
re
serving
+ p
er
missions then act as though the remote end sent
us the file permissions we already have */
file->mode = st.st_mode;
}
us the file permissions we already have */
file->mode = st.st_mode;
}
@@
-423,23
+425,17
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
this out. We also set it initially without group
access because of a similar race condition. */
fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
this out. We also set it initially without group
access because of a similar race condition. */
fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
- if (fd2 == -1) {
- rprintf(FERROR,"mkstemp %s failed: %s\n",fnametmp,strerror(errno));
- receive_data(f_in,buf,-1,NULL,file->length);
- if (buf) unmap_file(buf);
- continue;
- }
/* in most cases parent directories will already exist
because their information should have been previously
transferred, but that may not be the case with -R */
if (fd2 == -1 && relative_paths && errno == ENOENT &&
/* in most cases parent directories will already exist
because their information should have been previously
transferred, but that may not be the case with -R */
if (fd2 == -1 && relative_paths && errno == ENOENT &&
- create_directory_path(fnametmp) == 0) {
+ create_directory_path(fnametmp
, orig_umask
) == 0) {
strlcpy(fnametmp, template, sizeof(fnametmp));
fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
}
if (fd2 == -1) {
strlcpy(fnametmp, template, sizeof(fnametmp));
fd2 = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS);
}
if (fd2 == -1) {
- rprintf(FERROR,"
cannot create %s
: %s\n",fnametmp,strerror(errno));
+ rprintf(FERROR,"
mkstemp %s failed
: %s\n",fnametmp,strerror(errno));
receive_data(f_in,buf,-1,NULL,file->length);
if (buf) unmap_file(buf);
if (fd1 != -1) close(fd1);
receive_data(f_in,buf,-1,NULL,file->length);
if (buf) unmap_file(buf);
if (fd1 != -1) close(fd1);
@@
-448,8
+444,8
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
cleanup_set(fnametmp, fname, file, buf, fd1, fd2);
cleanup_set(fnametmp, fname, file, buf, fd1, fd2);
- if (!am_server
) {
-
log_transfer(file
, fname);
+ if (!am_server
&& verbose) { /* log transfer */
+
rprintf(FINFO, "%s\n"
, fname);
}
/* recv file data */
}
/* recv file data */