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
File I/O already handles '\r', so we can remove the O_TEXT flags.
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
0249d8a
..
ae270cf
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-38,8
+38,8
@@
extern int make_backups;
extern char *backup_suffix;
static struct delete_list {
extern char *backup_suffix;
static struct delete_list {
-
dev_t
dev;
- INO_T inode;
+
DEV64_T
dev;
+ INO
64
_T inode;
} *delete_list;
static int dlist_len, dlist_alloc_len;
} *delete_list;
static int dlist_len, dlist_alloc_len;
@@
-179,7
+179,7
@@
static int get_tmpname(char *fnametmp, char *fname)
rprintf(FERROR,"filename too long\n");
return 0;
}
rprintf(FERROR,"filename too long\n");
return 0;
}
- s
l
printf(fnametmp,MAXPATHLEN, "%s/.%s.XXXXXX",tmpdir,f);
+ s
n
printf(fnametmp,MAXPATHLEN, "%s/.%s.XXXXXX",tmpdir,f);
return 1;
}
return 1;
}
@@
-192,11
+192,11
@@
static int get_tmpname(char *fnametmp, char *fname)
if (f) {
*f = 0;
if (f) {
*f = 0;
- s
l
printf(fnametmp,MAXPATHLEN,"%s/.%s.XXXXXX",
+ s
n
printf(fnametmp,MAXPATHLEN,"%s/.%s.XXXXXX",
fname,f+1);
*f = '/';
} else {
fname,f+1);
*f = '/';
} else {
- s
l
printf(fnametmp,MAXPATHLEN,".%s.XXXXXX",fname);
+ s
n
printf(fnametmp,MAXPATHLEN,".%s.XXXXXX",fname);
}
return 1;
}
return 1;
@@
-206,7
+206,8
@@
static int get_tmpname(char *fnametmp, char *fname)
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
OFF_T total_size)
{
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
OFF_T total_size)
{
- int i,n,remainder,len,count;
+ int i;
+ unsigned int n,remainder,len,count;
OFF_T offset = 0;
OFF_T offset2;
char *data;
OFF_T offset = 0;
OFF_T offset2;
char *data;
@@
-248,7
+249,7
@@
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
i = -(i+1);
offset2 = i*(OFF_T)n;
len = n;
i = -(i+1);
offset2 = i*(OFF_T)n;
len = n;
- if (i == count-1 && remainder != 0)
+ if (i ==
(int)
count-1 && remainder != 0)
len = remainder;
stats.matched_data += len;
len = remainder;
stats.matched_data += len;
@@
-264,7
+265,7
@@
static int receive_data(int f_in,struct map_struct *buf,int fd,char *fname,
sum_update(map,len);
}
sum_update(map,len);
}
- if (fd != -1 && write_file(fd,map,len) != len) {
+ if (fd != -1 && write_file(fd,map,len) !=
(int)
len) {
rprintf(FERROR,"write failed on %s : %s\n",
fname,strerror(errno));
exit_cleanup(RERR_FILEIO);
rprintf(FERROR,"write failed on %s : %s\n",
fname,strerror(errno));
exit_cleanup(RERR_FILEIO);
@@
-296,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;
@@
-316,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) {
@@
-372,7
+375,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
if ((fd1 == -1) && (compare_dest != NULL)) {
/* try the file at compare_dest instead */
if ((fd1 == -1) && (compare_dest != NULL)) {
/* try the file at compare_dest instead */
- s
l
printf(fnamecmpbuf,MAXPATHLEN,"%s/%s",
+ s
n
printf(fnamecmpbuf,MAXPATHLEN,"%s/%s",
compare_dest,fname);
fnamecmp = fnamecmpbuf;
fd1 = do_open(fnamecmp, O_RDONLY, 0);
compare_dest,fname);
fnamecmp = fnamecmpbuf;
fd1 = do_open(fnamecmp, O_RDONLY, 0);
@@
-422,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\n",fnametmp);
- 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);
@@
-488,7
+485,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
}
if (preserve_hard_links)
}
if (preserve_hard_links)
- do_hard_links(
flist
);
+ do_hard_links();
/* now we need to fix any directory permissions that were
modified during the transfer */
/* now we need to fix any directory permissions that were
modified during the transfer */