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
Clear up conditions for running as root.
[rsync/rsync.git]
/
sender.c
diff --git
a/sender.c
b/sender.c
index
91fcc21
..
d2ab1b3
100644
(file)
--- a/
sender.c
+++ b/
sender.c
@@
-70,8
+70,8
@@
static struct sum_struct *receive_sums(int f)
offset += s->sums[i].len;
if (verbose > 3)
offset += s->sums[i].len;
if (verbose > 3)
- rprintf(FINFO,"chunk[%d] len=%d offset=%
d
sum1=%08x\n",
- i,s->sums[i].len,(
int
)s->sums[i].offset,s->sums[i].sum1);
+ rprintf(FINFO,"chunk[%d] len=%d offset=%
.0f
sum1=%08x\n",
+ i,s->sums[i].len,(
double
)s->sums[i].offset,s->sums[i].sum1);
}
s->flength = offset;
}
s->flength = offset;
@@
-91,12
+91,12
@@
void send_files(struct file_list *flist,int f_out,int f_in)
int i;
struct file_struct *file;
int phase = 0;
int i;
struct file_struct *file;
int phase = 0;
+ extern struct stats stats;
+ struct stats initial_stats;
if (verbose > 2)
rprintf(FINFO,"send_files starting\n");
if (verbose > 2)
rprintf(FINFO,"send_files starting\n");
- setup_readbuffer(f_in);
-
while (1) {
int offset=0;
while (1) {
int offset=0;
@@
-116,7
+116,7
@@
void send_files(struct file_list *flist,int f_out,int f_in)
if (i < 0 || i >= flist->count) {
rprintf(FERROR,"Invalid file index %d (count=%d)\n",
i, flist->count);
if (i < 0 || i >= flist->count) {
rprintf(FERROR,"Invalid file index %d (count=%d)\n",
i, flist->count);
- exit_cleanup(
1
);
+ exit_cleanup(
RERR_PROTOCOL
);
}
file = flist->files[i];
}
file = flist->files[i];
@@
-126,28
+126,31
@@
void send_files(struct file_list *flist,int f_out,int f_in)
fname[0] = 0;
if (file->basedir) {
fname[0] = 0;
if (file->basedir) {
- strlcpy(fname,file->basedir,MAXPATHLEN
-1
);
+ strlcpy(fname,file->basedir,MAXPATHLEN);
if (strlen(fname) == MAXPATHLEN-1) {
io_error = 1;
rprintf(FERROR, "send_files failed on long-named directory %s\n",
fname);
return;
}
if (strlen(fname) == MAXPATHLEN-1) {
io_error = 1;
rprintf(FERROR, "send_files failed on long-named directory %s\n",
fname);
return;
}
- strlcat(fname,"/",MAXPATHLEN
-1
);
+ strlcat(fname,"/",MAXPATHLEN);
offset = strlen(file->basedir)+1;
}
offset = strlen(file->basedir)+1;
}
- strlcat(fname,f_name(file),MAXPATHLEN
-strlen(fname)
);
+ strlcat(fname,f_name(file),MAXPATHLEN);
if (verbose > 2)
rprintf(FINFO,"send_files(%d,%s)\n",i,fname);
if (dry_run) {
if (verbose > 2)
rprintf(FINFO,"send_files(%d,%s)\n",i,fname);
if (dry_run) {
- if (!am_server && verbose)
- rprintf(FINFO,"%s\n",fname);
+ if (!am_server) {
+ log_transfer(file, fname+offset);
+ }
write_int(f_out,i);
continue;
}
write_int(f_out,i);
continue;
}
+ initial_stats = stats;
+
s = receive_sums(f_in);
if (!s) {
io_error = 1;
s = receive_sums(f_in);
if (!s) {
io_error = 1;
@@
-155,7
+158,7
@@
void send_files(struct file_list *flist,int f_out,int f_in)
return;
}
return;
}
- fd =
open(fname,O_RDONLY
);
+ fd =
do_open(fname, O_RDONLY, 0
);
if (fd == -1) {
io_error = 1;
rprintf(FERROR,"send_files failed to open %s: %s\n",
if (fd == -1) {
io_error = 1;
rprintf(FERROR,"send_files failed to open %s: %s\n",
@@
-180,9
+183,9
@@
void send_files(struct file_list *flist,int f_out,int f_in)
}
if (verbose > 2)
}
if (verbose > 2)
- rprintf(FINFO,"send_files mapped %s of size %
d
\n",
- fname,(
int
)st.st_size);
-
+ rprintf(FINFO,"send_files mapped %s of size %
.0f
\n",
+ fname,(
double
)st.st_size);
+
write_int(f_out,i);
write_int(f_out,s->count);
write_int(f_out,i);
write_int(f_out,s->count);
@@
-192,11
+195,16
@@
void send_files(struct file_list *flist,int f_out,int f_in)
if (verbose > 2)
rprintf(FINFO,"calling match_sums %s\n",fname);
if (verbose > 2)
rprintf(FINFO,"calling match_sums %s\n",fname);
- if (!am_server && verbose)
- rprintf(FINFO,"%s\n",fname+offset);
+ if (!am_server) {
+ log_transfer(file, fname+offset);
+ }
+
+ set_compression(fname);
match_sums(f_out,s,buf,st.st_size);
match_sums(f_out,s,buf,st.st_size);
-
+
+ log_send(file, &initial_stats);
+
if (buf) unmap_file(buf);
close(fd);
if (buf) unmap_file(buf);
close(fd);